У меня две функции: одна меняет классы меню, а другая добавляет link_after
к пункту меню, у которого есть дочерние элементы:
add_filter('nav_menu_css_class', 'filter_nav_menu_item_css', 10, 4);
function filter_nav_menu_item_css($classes, $item, $args, $depth){
if($args->theme_location === 'menu-1') :
if($depth === 0){
if(in_array('menu-item-has-children', $classes)){
$classes = ['navigation__item', 'menu-item-has-children'];
}else{
$classes = ['navigation__item'];
}
}elseif($depth === 1){
$classes = ['navigation-dropdown__item'];
}
endif;
if($args->theme_location === 'menu-footer'):
if($depth === 0){
$classes = ['footer__col' ];
}else{
if($item->attr_title === '1')
$classes = ['footer__item', 'footer__title'];
else
$classes = ['footer__item'];
}
endif;
return $classes;
}
add_filter('nav_menu_css_class', 'filter_nav_menu_arrow',10,3);
function filter_nav_menu_arrow($classes, $args, $depth){
if(in_array('menu-item-has-children', $classes)){
$args->link_after = '<i class="far fa-angle-down navigation__arrow-down"></i>';
}
return $args;
}
Но они не работают ни одновременно, ни последовательно:
html
Может есть еще один способ добавить link_after
к предметам с детьми?