簡體   English   中英

modx php獲取當前頁面名稱

[英]modx php get current page name

在ModX中,我試圖根據用戶所在的頁面進行簡單的重定向。 在我的網站上,我有一個塊,其中包含指向“關於我們”,“職業”等頁面的各種鏈接。此卡盤用於網站上的所有頁面。

我的問題從這里開始-在“職業”頁面上,有一個指向新頁面的鏈接,該頁面包含所有可用的職位發布。 我要這樣做,以便當用戶位於“職業”頁面上時,單擊塊上“職業”頁面的鏈接會將他們直接帶到職位發布頁面,而不是直接將其循環回到“職業”頁面。

職業頁面的網址采用以下格式:

www.example.com/index.php?q=careers.html

因此,如果用戶在“職業”頁面上,我在代碼塊中的代碼將重定向到工作清單:

<?php
    if ($_SERVER['PHP_SELF'] == "index.php?q=careers.html") {
      echo '<p><a href="www.joblistsite.com">Careers</a></p>';
    } 
    else {
      echo '<p><a href="index.php?q=careers.html">Careers</a></p>';
    }
?>

但這是行不通的。 它繼續鏈接回“職業”頁面,而不是鏈接到“職位列表”頁面。 我已經嘗試過使用頁面的ID,但事實並非如此。 如果使用if語句在ModX中獲取當前頁面,我應該使用什么? 我究竟做錯了什么?

上面的解決方案可以工作(尤其是WayFinder),但是我建議使用MODX內置功能,該功能允許您指定頁面別名以生成SEO友好的url。 這樣的別名可用於輕松定位當前頁面。

一種簡單而有效的解決方案是使用頁面別名並將其與當前別名進行比較:

$page_alias = $modx->resource->get('alias'); // get alias of the current page

if($page_alias == 'something'){
// do something
}

如果您處理多級頁面,則可能需要讓資源父級來使上述工作更有效:

$parent = $modx->resource->get('parent');

我猜您對MODX還是很陌生。 通常, Wayfinder用於構建動態菜單,而無需像您正在做的事情那樣使用硬編碼的解決方案。

要開始使用: http : //rtfm.modx.com/display/ADDON/Wayfinder+Introductory+Examples

要像您想要的那樣切換href屬性,您可以指定一個不同的&hereTpl參數,該參數將在與當前頁面有關的菜單項中顯示。 www.joblistsite.com網址可能包含在每個頁面上的模板變量集中。

我沒有使用modx的經驗,但是確定它的最佳選擇是調試$_SERVER變量並檢查其中的各種“鍵”的內容。

echo '<pre>'; print_r($_SERVER); echo '</pre>';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM