WP Walker использует пользовательские классы css


Для того, чтобы сделать навигацию (с нуля), я изменил вывод ходока. В настоящее время я пытаюсь найти способ включить "Дополнительный класс CCS" (найденный в разделе Внешний вид ->Меню в администраторе WP) в меню элемента вывода (start_el). Я начинаю сомневаться, возможно ли это на данный момент. Вот почему мне нужна ваша помощь. Я использую этот массив, чтобы определить, есть ли у элемента дочерние элементы или он активен:

$usedclasses = array(
    (in_array('current-menu-item', $item->classes) ? 'current-menu-item' : ''),
    (in_array('menu-item-has-children', $item->classes) ? 'menu-item-has-children' : ''),
    ($depth % 2 ? 'odd' : 'even')
); $class_names = 'class="' . implode( ' ', $usedclasses ) . '"';

Есть ли способ добавить пользовательский добавлены классы без необходимости включать все классы беспорядка? Поэтому стараюсь избегать использования:

$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args, $depth ) );
$class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : '';
Author: Ethan O'Sullivan, 2016-11-04

1 answers

Не уверен, что вы хотите сделать это таким образом, но на всякий случай вы можете использовать фильтр nav_menu_css_class :

function my_special_nav_class( $classes, $item ) {

   if ( is_single() && $item->title == 'Blog' ) {
      $classes[] = 'special-class';
   }

   return $classes;

}

add_filter( 'nav_menu_css_class', 'my_special_nav_class', 10, 2 );

Вы найдете больше примеров здесь

 1
Author: Benoti, 2016-11-04 14:35:38