我通过function.php在我的wp_nav_menu上添加了一个特定的类但是我无法定位特定的菜单:这就是我得到的
function add_menuclass_active($ulclass) {
return preg_replace('/<a /', '<a class="list-group"', $ulclass, 1);
}
add_filter('wp_nav_menu', 'add_menuclass_active');
我也尝试过没有运气
function add_menuclass_active($ulclass) {
if( $ulclass['theme_location'] == 'CUSTOM MENU' )
return preg_replace('/<a /', '<a class="list-group"', $ulclass, 1);
}
add_filter('wp_nav_menu', 'add_menuclass_active');
答案 0 :(得分:3)
感谢answer from wordpress stack我得到了这个解决方案:
将此添加到您的functions.php
register_nav_menus(array(
'top-menu' => __('Menu1', 'twentyfourteen'),
'side-menu' => __('Menu2', 'twentyfourteen'),
'footer-menu' => __('Menu3', 'twentyfourteen')
)
);
function my_walker_nav_menu_start_el($item_output, $item, $depth, $args) {
$menu_locations = get_nav_menu_locations();
if ( has_term($menu_locations['top-menu'], 'nav_menu', $item) ) {
$item_output = preg_replace('/<a /', '<a class="list-group" ', $item_output, 1);
}
return $item_output;
}
add_filter('walker_nav_menu_start_el', 'my_walker_nav_menu_start_el', 10, 4);
最后,您必须为特定菜单选择“Menu1”选项,您必须在其中添加仪表板Apperance-&gt;菜单中的锚定制类。 [为其锚链接不需要自定义类的其他菜单选择menu2或menu3]
要将“活动类”添加到特定菜单的第一个菜单项,请尝试以下方法:
function my_walker_nav_menu_start_el($item_output, $item, $depth, $args) {
$menu_locations = get_nav_menu_locations();
if ( has_term($menu_locations['top-menu'], 'nav_menu', $item) ) {
$item_output = preg_replace('/<a /', '<a class="list-group" ', $item_output, 1);
if ($item->menu_order == 1){
$item_output = preg_replace('/<a /', '<a class="list-group active" ', $item_output, 1);
}
}
return $item_output;
}
add_filter('walker_nav_menu_start_el', 'my_walker_nav_menu_start_el', 10, 4);
如果必须将活动类添加到所有菜单的第一个菜单项中,请使用:
function my_walker_nav_menu_start_el($item_output, $item, $depth, $args) {
$menu_locations = get_nav_menu_locations();
if ( has_term($menu_locations['top-menu'], 'nav_menu', $item) ) {
$item_output = preg_replace('/<a /', '<a class="list-group" ', $item_output, 1);
}
if ($item->menu_order == 1){
$item_output = preg_replace('/<a /', '<a class="active" ', $item_output, 1);
}
return $item_output;
}
add_filter('walker_nav_menu_start_el', 'my_walker_nav_menu_start_el', 10, 4);
答案 1 :(得分:0)
主题位置存储在导航菜单参数中,您需要将其添加到函数参数中:
function add_menuclass_active( $nav_menu, $args ) {
if( $args->theme_location == 'CUSTOM MENU' )
return preg_replace( '/<a /', '<a class="list-group"', $nav_menu, 1 );
return $nav_menu;
}
add_filter( 'wp_nav_menu', 'add_menuclass_active', 10, 2 );