You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress中用Bootstrap 4创建导航栏?锚点标签加类问题

给WordPress菜单的锚点标签添加Bootstrap类的解决方案

我之前在整合Bootstrap 4和WordPress菜单时也碰到过一模一样的问题,其实用WordPress自带的过滤器就能轻松解决,这也是最规范的做法,具体步骤如下:

这个过滤器专门用来修改WordPress菜单中锚点()标签的属性,我们可以通过它给链接添加nav-link类,甚至根据菜单状态动态添加active类。

步骤1:在主题的functions.php中添加代码

打开你当前主题的functions.php文件,插入以下代码:

function add_bootstrap_nav_link_class($atts, $item, $args) {
    // 替换成你实际注册的菜单位置(比如你的primary菜单)
    if (isset($args->theme_location) && $args->theme_location == 'primary') {
        // 给锚点添加基础的nav-link类
        $atts['class'] = 'nav-link';
        
        // 如果是当前活跃的菜单项,额外添加active类(可选,Bootstrap也支持把active加在<li>上)
        if ($item->current || $item->current_item_ancestor) {
            $atts['class'] .= ' active';
        }
    }
    return $atts;
}
add_filter('nav_menu_link_attributes', 'add_bootstrap_nav_link_class', 10, 3);

步骤2:确认菜单位置参数

代码里的primary是菜单的注册位置,你需要替换成自己主题中实际的菜单位置名称。可以在主题的functions.php里找register_nav_menus的代码,比如:

register_nav_menus( array(
    'primary' => __( '主导航菜单', 'your-theme-slug' ),
) );

这里的primary就是你要填的参数。

配合
  • 标签的类
  • 既然你已经成功给

  • 添加了nav-item类(通常是用nav_menu_css_class过滤器实现的),这两个过滤器配合起来,就能完美生成Bootstrap要求的菜单结构:

    <ul class="navbar-nav">
        <li class="nav-item active">
            <a class="nav-link active" href="#">Home <span class="sr-only">(current)</span></a>
        </li>
        <li class="nav-item">
            <a class="nav-link" href="#">About</a>
        </li>
    </ul>
    

    额外提示

    如果不想限制菜单位置,也可以去掉if判断,给所有WordPress菜单的链接都加上nav-link类,但这样可能会影响其他不需要Bootstrap样式的菜单,所以更推荐针对特定菜单位置处理。

    内容的提问来源于stack exchange,提问作者WP Learner

  • 相关产品推荐
    方舟 Agent Plan

    超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

    最近更新时间:2026.05.25 08:25:01