問題描述

我有一個自定義菜單,我可以使用 wp_nav_menu 調用很好。菜單名稱是否顯示在 h3 標籤之前有沒有辦法?

防爆。

<h3>My Menu Name</h3>
<nav>
<ul>
<li>Menu Item 1</li>
<li>Menu Item 2</li>
</ul>
</nav>

最佳解決方案

如果你知道菜單的 s lug 聲,那麼事情會更容易,否則你可以使用這個功能在指定的位置獲取菜單。

<?php
function wpse45700_get_menu_by_location( $location ) {
    if( empty($location) ) return false;

    $locations = get_nav_menu_locations();
    if( ! isset( $locations[$location] ) ) return false;

    $menu_obj = get_term( $locations[$location], 'nav_menu' );

    return $menu_obj;
}
?>

然後

//if you after the menu the menu with a specific ID / Slug
//$menu_obj =wp_get_nav_menu_object($id_slug_or_name); 

//if you after the menu at a specific location
$menu_obj = wpse45700_get_menu_by_location($location); 

echo "<h3>".esc_html($menu_obj->name)."</h3>";
//Display menu here

或者,而不是回傳 html,您可以將其作為 wp_nav_menu 中的 items 屬性的參數的一部分傳遞。

例如,要在位置’primary’ 顯示菜單:

$location = 'primary';
$menu_obj = wpse45700_get_menu_by_location($location ); 
wp_nav_menu( array('theme_location' => $location, 'items_wrap'=> '<h3>'.esc_html($menu_obj->name).'</h3><ul id="%1$s" class="%2$s">%3$s</ul>') ); 

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。