wordpress - 将级别选择器类添加到 wordpress 导航菜单

标签 wordpress class menu navigation

我想在回显 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>

这有可能获得所需的输出吗?请帮忙!

最佳答案

没有直接的方法可以做到这一点。

您可以使用 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;        
}

关于wordpress - 将级别选择器类添加到 wordpress 导航菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8635838/

相关文章:

c++ - 这两种方法有什么区别?

android - Material 工具栏菜单背景填充和颜色

CSS 悬停在 IE8 中不起作用

php - 如何开始阅读别人的代码?

javascript - 如果 Essential Grid Wordpress 插件中的价格等于 0,则无法隐藏价格

css - Wordpress 无法正确显示 CSS 文件

C++ 类默认构造函数

c++ - 为包装列表自定义迭代器

css - 强制菜单保持在 1 行并强制页面有 1 页没有滚动

php - 需要使用此代码 woocommerce wordpress 按 ID 显示某些类别