问题描述
我有一个自定义菜单,我可以使用 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。