我想在回显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>
这可能具有所需的输出吗?请帮忙!
答案 0 :(得分:8)
没有直接的方法可以做到这一点。
您可以使用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;
}
答案 1 :(得分:2)
最好使用自定义助行器添加该类。看到 Cleaner output for wp_nav_menu()和Improve your Wordpress Navigation Menu Output以及T5_Nav_Menu_Walker_Simple — Gist
答案 2 :(得分:-1)
它会帮助你......
<?php wp_list_pages('title_li='); ?>