wp_nav_menu-补充知识

'walker’的使用
此处略,在设置bootstrap用到,请参考其他文档(还没写,后续会完成,可以按照bootstrap+wordpress+菜单查找相关文档)。

<!--?php 
    wp_nav_menu( array( 
    'theme_location'=-->'menu-1',
'items_wrap' => '
<ul id="%1$s" class="%2$s" tabindex="0">%3$s</ul>
',
'depth' => 0
));
?> 

如何除ul标签

<!--?php 
    wp_nav_menu( array( 
    'theme_location'=-->'menu-1',
'items_wrap' => '%3$s',
'depth' => 0
));
?> 

插入文本
包括“链接”前后插入文本和“链接文本”前后插入文本。

其实不止是文本,也可以输出html标签,所以灵活使用这四个参数,可以打造出别具一格的导航菜单。

<!--?php 
    wp_nav_menu( array( 
    'theme_location'=-->'menu-1',
'container' => '',
'menu_class' => 'menuclass', //ul节点class值
'menu_id' => 'menuid', //ul节点id值
'before' => 'before',
'after' => 'after',
'link_before' => 'link_before',
'link_after' => 'link_after',
));
?> 

对应


<ul id="menuid" class="menuclass">
 	<li class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-5">before<a href="http://localhost/jijianzhuti">link_before首页link_after</a>after</li>
 	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6">before<a href="http://localhost/jijianzhuti/?page_id=2">link_before示例页面link_after</a>after</li>
 	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-7">before<a href="http://localhost/jijianzhuti/?cat=1">link_before未分类link_after</a>after</li>
</ul>

去除或保留菜单多余类名:
重要说明:在functions.php,可以通过add_filter去除或保留菜单多余类名:

add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 1);
add_filter('nav_menu_item_id', 'my_css_attributes_filter', 100, 1);
add_filter('page_css_class', 'my_css_attributes_filter', 100, 1);
function my_css_attributes_filter($var) {
return is_array($var) ? array_intersect($var, array('current-menu-item','current-post-ancestor','current-menu-ancestor','current-menu-parent')) : '';
}