[英]Joomla: How to get the URL of an associated menu item (Multilingual / from current page)
我想手動將hreflang屬性添加到頁面的HTML標頭中。
我正在將Joomla 3.4.8 + SEBLOD組件用於多語言站點。 如果我關聯了不同語言的菜單項,通常會將“鏈接標簽”和“ hreflang屬性”添加到標題中,以使菜單項之間的關系對於搜索引擎可見。
由於某種原因,如果我在Seblod組件的列表和搜索視圖中,則不會添加此標記。 這就是為什么我要手動將丟失的標簽寫到頭部的原因。
我知道如何向頭部添加元信息以及如何獲取當前菜單項的ID, 但是我不知道如何獲取當前頁面相關菜單項的ID(或SEO友好URL) 。
有任何想法嗎?
我希望我能很好地描述自己...預先感謝!
示例:當前頁面的菜單項是德語。 它與英語菜單項相關聯/相連(該菜單項顯示當前頁面的英語版本)。 我需要的是英語菜單項的SEF-URL。
最簡單的解決方案是查詢活動菜單,以便獲得菜單的所有變量。 下面的代碼應返回菜單的當前活動路線:
$app = JFactory::getApplication();
$menu = $app->getMenu()->getActive();
$sefUrl = $menu->route;
echo '<pre>';
print_r($menu);
echo '</pre>';
echo $sefUrl;
//HERE IS THE PHP TO SET A META DYNAMICALLY IF YOU NEED IT AS WELL
$doc =& JFactory::getDocument();
$doc->setMetaData( 'tag-name', 'tag-content', true );
如果返回的路由不是與您的頁面匹配的正確路由,則可以使用strpos檢查鏈接屬性是否包含index.php,然后將其和菜單ID串聯起來,以通過JRoute運行SEF網址,例如所以:
if(strpos($menu-Link,'index.php?') !== false){
$sefUrl = JRoute::_($menu->link.'&Itemid='.$menu->id);
}
希望這對您有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.