我已经知道如何将自己的类添加到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名称会很棒,但只是简单的类也会很好...
答案 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
添加到所有子菜单项目中,但这样您就可以更改任何内容。