Я создал вторую пользовательскую навигацию в Wordpress, чтобы создать меню верхней панели.Но мне нужно добавить классы для элементов ul
, li
и a
.
Мой код в functions.php выглядит следующим образом:
function secondary_navigation() {
register_nav_menu('secondary-navigation',__( 'Top bar navigation' ));
}
add_action( 'init', 'secondary_navigation' );
Код в моем шаблоне выглядит следующим образом:
<?php
wp_nav_menu( array(
'theme_location' => 'secondary-navigation',
'menu_class' => 'navigation__list',
'add_li_class' => 'navigation__list__item',
)
); ?>
'menu_class' => 'navigation__list'
также создает div вокруг моего ul
вместо добавления класса к элементу ul
.
У меня также есть основная навигация, где я добавил классы для элементов выше, и это отлично работает.Чтобы заставить его работать для этой навигации Я создал две функции:
/*
* Add classes to the navigation li item
*/
function add_additional_class_on_li($classes, $item, $args) {
if($args->add_li_class) {
$classes[] = $args->add_li_class;
}
return $classes;
}
add_filter('nav_menu_css_class', 'add_additional_class_on_li', 1, 3);
/*
* Add classes to the navigation a link
*/
function add_menuclass($ulclass) {
return preg_replace('/<a /', '<a class="navigation__list__item__link"', $ulclass);
}
add_filter('wp_nav_menu','add_menuclass');
Моя основная навигация в моем шаблоне выглядит так:
<?php wp_nav_menu(
array(
'theme_location' => 'primary',
'container_id' => 'navbarNavDropdown',
'menu_class' => 'navigation__list',
'fallback_cb' => '',
'menu_id' => 'main-menu',
'add_li_class' => 'navigation__list__item',
'depth' => 2,
)
); ?>
Так как я могу заставить эти две функции (которые работают для основной навигации) работать для моей пользовательской дополнительной навигации?