有一个nav_menu_css_class
滤器添加类很简单。
function add_classes_wpse_130358($classes, $item, $args) {
$classes[] = \'new-class\';
return $classes;
}
add_filter(\'nav_menu_css_class\',\'add_classes_wpse_130358\',1,3);
但您可能需要扩展
Walker_Nav_Menu
或使用
walker_nav_menu_start_el
而是筛选,因为
nav_menu_css_class
筛选器无法访问
depth
变量但是
walker_nav_menu_start_el
不允许您在需要的地方设置类,因此假设您的PHP足够新。。。
function depth_classes_wpse_130358($item_output, $item, $depth, $args) {
add_action(
\'nav_menu_css_class\',
function() use ($depth) {
$depth++;
$classes[] = "depth-{$depth}";
return $classes;
}
);
return $item_output;
}
add_filter(\'walker_nav_menu_start_el\',\'depth_classes_wpse_130358\',1,4);
你会得到
depth-N
对于大于0的每个级别。
我不记得曾经需要这样做。现有的标记一直都是足够的,但现在就可以了。