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 ) . '"' : '';
1
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