将级别选择器类添加到 wordpress 导航菜单
Posted
技术标签:
【中文标题】将级别选择器类添加到 wordpress 导航菜单【英文标题】:Add levels selector class to wordpress nav menu 【发布时间】:2012-01-27 23:33:02 【问题描述】:在回显 wp_list_pages 的结果时,我想为每个 li 添加级别类。目前,我正在使用:
<?php
wp_nav_menu(array('theme_location' => 'main_menu', 'container' => '', 'menu_class' => 'fR clearfix', 'menu_id' => 'nav'));
<?php ?>
期望的输出是:
<ul class="menu">
<li class="page_item page-item-9 level-0 current_page_item"><a href="" title=""></a>
<ul class="children expanded" style="display: block; ">
<li class="page_item page-item-40 level-1"><a href="" title=""></a></li>
<li class="page_item page-item-43 level-1"><a href="" title=""></a></li>
<li class="page_item page-item-45 level-1"><a href="" title=""></a></li>
<li class="page_item page-item-47 level-1"><a href="" title=""></a></li>
</ul>
</li>
<!-- So on -->
</ul>
这有可能得到想要的输出吗?请帮忙!
【问题讨论】:
【参考方案1】:没有直接的方法可以做到这一点。
您可以使用 wp_nav_menu_objects 过滤器并操作菜单项的类。
这是给你的代码:
<?php
add_filter('wp_nav_menu_objects' , 'my_menu_class');
function my_menu_class($menu)
$level = 0;
$stack = array('0');
foreach($menu as $key => $item)
while($item->menu_item_parent != array_pop($stack))
$level--;
$level++;
$stack[] = $item->menu_item_parent;
$stack[] = $item->ID;
$menu[$key]->classes[] = 'level-'. ($level - 1);
return $menu;
【讨论】:
【参考方案2】:最好使用自定义 walker 来添加该类。看 Cleaner output for wp_nav_menu() 和 Improve your Wordpress Navigation Menu Output 和 T5_Nav_Menu_Walker_Simple — Gist
【讨论】:
【参考方案3】:它会帮助你...
<?php wp_list_pages('title_li='); ?>
http://codex.wordpress.org/Function_Reference/wp_list_pages
【讨论】:
问题指的是函数wp_nav_menu,而不是wp_list_pages以上是关于将级别选择器类添加到 wordpress 导航菜单的主要内容,如果未能解决你的问题,请参考以下文章
PHP 如何自动将搜索字段添加到导航菜单中| WordPress的
php Wordpress菜单/导航----将.active类添加到活动菜单项---- Bootstrap Nav Walker