WordPress不添加parent
类到具有子菜单的菜单项。因此,需要进行扩展:
function add_parent_css( $classes, $item ) {
global $have_children;
if( $have_children ) {
$classes[] = \'parent\';
}
return $classes;
}
add_filter( \'nav_menu_css_class\', \'add_parent_css\', 10, 2 );
class custom_walker extends Walker_Nav_Menu {
function display_element($element, &$children_elements, $max_depth, $depth=0, $args, &$output){
$GLOBALS[\'have_children\'] = (isset($children_elements[$element->ID]))? 1:0;
parent::display_element($element, $children_elements, $max_depth, $depth, $args, $output);
}
[...]
}
代码将插入
parent
类设置为具有子菜单的所有菜单项,然后可以在CSS中使用,如:
.parent:after { content: ">"; }
我想知道,如果没有自定义菜单漫游器,是否有办法做到这一点?只使用过滤器?我之所以问这个问题,是因为像WPML这样的一些插件忽略了菜单项的自定义菜单漫游器,而它们在菜单中的“语言切换器”无法
parent
类,即使有子项。与其等待WPML来解决这个问题,我更愿意只更新主题中的菜单,以更简单的方式来完成。