問題描述
可以將 current-menu-item 作為 php 變數嗎?
我透過選單專案 「我們支援的博物館」 列出類別博物館,所以我想要得到我們支援的博物館,並將其顯示在某個地方?
任何幫助讚賞!
最佳解決方案
這是可以透過過濾 wp_nav_menu_objects,這是檢查哪個專案是當前選單項的最簡單的地方,因為 WordPress already added the classes for you 。
add_filter( 'wp_nav_menu_objects', 'wpse16243_wp_nav_menu_objects' );
function wpse16243_wp_nav_menu_objects( $sorted_menu_items )
{
foreach ( $sorted_menu_items as $menu_item ) {
if ( $menu_item->current ) {
$GLOBALS['wpse16243_title'] = $menu_item->title;
break;
}
}
return $sorted_menu_items;
}
您現在可以使用這個新的全域性變數,而不是正常的標題。簡單的例子:
add_filter( 'single_cat_title', 'wpse16243_single_cat_title' );
function wpse16243_single_cat_title( $cat_title )
{
if ( isset( $GLOBALS['wpse16243_title'] ) ) {
return $GLOBALS['wpse16243_title'];
}
return $cat_title;
}
當然這隻有在顯示標題之前顯示選單才有用。如果你以前需要它 (也許在<title> 元素中),你應該是 first render the menu and then display it later 。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。