Tim*_*URA 11 wordpress wordpress-theming
尝试将标准引导程序"nav-link"类添加到Wordpress菜单呈现的锚点.至今 ...
1 /我可以将变量传递给wp_nav_menu()
<?php wp_nav_menu(array(
'theme_location' => 'header-menu',
'menu_class' => 'navbar-nav',
'container' => 'false'
) );
?>
Run Code Online (Sandbox Code Playgroud)
并将类应用于菜单,并删除包含div.
2 /然后我使用Wordpress外观>菜单UI将"nav-item"类应用于li标签.
问:如何将类应用于wordpress菜单锚点
Dav*_*ara 35
你可以使用WP nav_menu_link_attributes钩子做你需要的:
add_filter( 'nav_menu_link_attributes', function($atts) {
$atts['class'] = "nav-link";
return $atts;
}, 100, 1 );
Run Code Online (Sandbox Code Playgroud)
......或者如果你不喜欢闭包:
function add_link_atts($atts) {
$atts['class'] = "nav-link";
return $atts;
}
add_filter( 'nav_menu_link_attributes', 'add_link_atts');
Run Code Online (Sandbox Code Playgroud)
为避免使用WordPress菜单UI将类添加到菜单列表项,您可以利用'nav_menu_css_class'过滤器:
add_filter( 'nav_menu_css_class', function($classes) {
$classes[] = 'nav-item';
return $classes;
}, 10, 1 );
Run Code Online (Sandbox Code Playgroud)
如果您的网站上有多个菜单,或者只是想灵活一些。您可以扩展wp_nav_menu内置函数:
只需添加add_a_class到您的wp_nav_menu功能:
wp_nav_menu(
array(
'theme_location' => 'primary',
'depth' => 2,
'container' => 'div',
'add_a_class' => 'class1 class2',
'fallback_cb' => false,
)
);
Run Code Online (Sandbox Code Playgroud)
在您的functions.php:
function add_additional_class_on_a($classes, $item, $args)
{
if (isset($args->add_a_class)) {
$classes['class'] = $args->add_a_class;
}
return $classes;
}
add_filter('nav_menu_link_attributes', 'add_additional_class_on_a', 1, 3);
Run Code Online (Sandbox Code Playgroud)