如何在WordPress中为wp_nav_menu生成的<li>标签添加自定义类
你可以通过WordPress内置的nav_menu_css_class过滤器实现需求,该方案不会覆盖WordPress自动生成的原有类名,仅额外追加你指定的自定义类。
操作步骤
- 将以下代码添加到你当前主题的
functions.php文件中:
// 为头部导航菜单的li元素追加自定义类 function custom_nav_menu_item_class( $classes, $item, $args ) { // 仅对指定位置的头部导航生效,避免影响其他菜单 if ( $args->theme_location === 'header' ) { $classes[] = 'navbar__nav-item'; } return $classes; } add_filter( 'nav_menu_css_class', 'custom_nav_menu_item_class', 10, 3 );
- 你原有的
wp_nav_menu调用代码无需做任何修改,保存后刷新页面即可看到效果。
原理说明
nav_menu_css_class是WordPress专门用于过滤导航菜单- 标签CSS类的钩子
- 传入的
$classes数组默认包含WordPress自动生成的所有原生类(比如当前页激活类、菜单层级类等),你只需将自定义类追加到数组中即可,原有类会完整保留 - 代码中的if判断用于限定仅给
theme_location为header的菜单加类,如果你需要给全站所有导航菜单的li都加该类,删除if判断即可。
内容的提问来源于stack exchange,提问作者Will
相关产品推荐
相关产品推荐

