我在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'
还在我的ul
周围创建了一个div,而不是将类添加到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,
)
); ?>
那么如何使这两个功能(适用于主要导航)适用于自定义的次要导航?