如何将自己的类添加到WP Nav Menu

时间:2013-05-23 21:01:09

标签: wordpress submenu

我已经知道如何将自己的类添加到Wordpress菜单或通过以下方式访问子菜单的父li:

function my_nav_special_class($classes, $item){
    if(in_array('current-menu-ancestor', $classes)){
        $classes[] = 'my_class';
    }
    return $classes;
}
add_filter('nav_menu_css_class' , 'my_nav_special_class' , 10 , 2);

但我不知道如何只定位子菜单li项目。如果这个类是项目标题的slug名称会很棒,但只是简单的类也会很好...

1 个答案:

答案 0 :(得分:1)

您必须使用Walker_Nav_Menu,它用于遍历所有菜单项。

$ depth - 项目的当前级别(将第一级别计为0)

$ item - 包含项目

的所有数据的对象
// header.php
wp_nav_menu( array( 'theme_location' => 'primary', 'walker' => new my_walker_nav_menu() ) );

// functions.php
class my_walker_nav_menu extends Walker_Nav_Menu {
    function start_el( &$output, $item, $depth, $args ) {
        if ( $depth == 1 ) {
            $item->classes[] = 'my_class';
        }
        parent::start_el($output, $item, $depth, $args);  
    }
}

以上示例将my_class添加到所有子菜单项目中,但这样您就可以更改任何内容。

相关问题