当前位置: 首页 > 知识库问答 >
问题:

如何在WordPress中插入Bootstrap 4菜单?

朱宜
2023-03-14

我正在尝试设置一个Bootstrap 4 navbar菜单,但我不能让它按我想要的方式工作。

新的Bootstrap 4 navbar菜单代码如下所示。

<nav class="navbar navbar-expand-lg navbar-dark bg-success">
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>

<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
  <div class="navbar-nav mr-auto">
    <a class="nav-item nav-link active" href="#">Home <span class="sr-only">(current)</span></a>
    <a class="nav-item nav-link" href="#our-company">Our Company</a>
    <a class="nav-item nav-link" href="#our-products">Products</a>
  </div>
  <div class="navbar-nav">
    <a class="nav-item nav-link" href="#"><i class="fa fa-envelope mr-2"></i>email@companyname.com</a>
    <a class="nav-item nav-link" href="#"><i class="fa fa-phone mr-2"></i>+1-234-567-8910</a>
  </div>
</div>
</nav>

注意,nav-items由一个类为navbar-nav的div封闭,该div还由一个类为collable navbar-collable的父div封闭。它的最外层的父div是nav,它有一个navbar类。

另一方面,WordPress显示菜单的方式如下所示。

<div class="menu-main-menu-container">
  <ul id="menu-main-menu" class="menu">
    <li id="menu-item-11" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-11">
      <a href="#">Home</a>
    </li>
    <li id="menu-item-12" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-12">
      <a href="#our-company">Our Company</a>
    </li>
    <li id="menu-item-13" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-13">
      <a href="#our-products">Our Products</a>
    </li>
  </ul>
</div>

WordPress使用ul和LI制作菜单。而Bootstrap则通过div和锚标记来实现。

我的WordPress菜单编码方式如下所示:

<?php
  wp_nav_menu([
    'theme_location'  => 'primary',
    'container'       => 'div',
    'container_id'    => '',
    'container_class' => 'collapse navbar-collapse',
    'menu_class'      => 'navbar-nav mr-auto',
  ]);
?>

现在,当菜单生成时,它在站点上看起来是这样的。

<div class="navbar-nav mr-auto">
  <ul>
    <li class="page_item page-item-7 current_page_item">
      <a href="http://localhost/envirodyn/" aria-current="page">Home</a>
    </li>
  </ul>
</div>

如果WordPress就是这样做的,那么至少我希望能够将类.navbar-nav添加到ul中,将类.nav-item添加到li标签,将类.nav-link添加到anchor标签。

那样的话,就会像这样

<ul class="navbar-nav">
  <li class="nav-item">
    <a class="nav-link">Menu 1</a>
  </li>
  <li class="nav-item">
    <a class="nav-link">Menu 2</a>
  </li>
</ul>

共有2个答案

李景天
2023-03-14

Sarwar Alam的建议对我起作用了!我将把我的问题的详细答案放在这里,以防万一其他人也会经历和我一样的情景。

不过,有1票赞成Sarwar的回答。

按照他的建议,我在谷歌搜索了一下,从这个链接中找到了答案:https://techsolutionshere.com/implementation-bootstrap-navwalker-in-wordpress/

>

  • 我从提供的GitHub链接下载了class-wp-bootstrap-navwalker.php文件。

    文件放在主题的根目录中。

    我在functions.php文件中添加了下面的代码。

    if ( ! file_exists( get_template_directory() . '/class-wp-bootstrap-navwalker.php' ) ) {
        // file does not exist... return an error.
        return new WP_Error( 'class-wp-bootstrap-navwalker-missing', __( 'It appears the class-wp-bootstrap-navwalker.php file may be missing.', 'wp-bootstrap-navwalker' ) );
    } else {
        // file exists... require it.
        require_once get_template_directory() . '/class-wp-bootstrap-navwalker.php';
    }
    

    确保注册了nav_menus(在functions.php文件中)。

    然后将wp_nav_menu代码插入到我要在站点上放置我的navbar菜单的区域中。

    wp_nav_menu( array(
        'theme_location'  => 'primary',
        'depth'           => 2, // 1 = no dropdowns, 2 = with dropdowns.
        'container'       => 'div',
        'container_class' => 'collapse navbar-collapse',
        'container_id'    => 'bs-example-navbar-collapse-1',
        'menu_class'      => 'navbar-nav mr-auto',
        'fallback_cb'     => 'WP_Bootstrap_Navwalker::fallback',
        'walker'          => new WP_Bootstrap_Navwalker(),
    ) );
    

    维奥拉!现在我的Bootstrap 4 navbar菜单正在按WordPress的方式工作!

  • 翟柏
    2023-03-14

    您可以通过使用wp bootstrap navwalker类将bootstrap navbar与wordpress集成。你可以从谷歌搜索找到这门课。

     类似资料:
    • 最近我在我的网站上安装了两个插件。插件生成两个管理菜单。我想把菜单藏起来。 菜单名为: WP Metaboxer鼠标悬停链接(mysite.com/WP admin/edit.php?post_type=mtbxr_metabox) BWS插件鼠标悬停链接(mysite.com/wp-admin/admin.php?page=bws_plugins) 我可以通过这些代码隐藏其他默认菜单

    • 我有一个电子邮件订阅我的网站,我想插入到我的Wordpress数据库,所以我可以导出电子邮件列表。我已经创建了表wp_email_subscription,其中包含4个字段ID、名称、电子邮件和创建日期。对此将进行什么查询?有没有wordpress数据库脚本可以使用?

    • 我正在创建一个wordpress插件,让用户登录并上传文件,在后端管理员中,用户可以登录并设置权限等 这里是php文件生成前端现在im添加这个作为模板和创建前端的事情我想做的是把这个代码也在插件。。,是否有相关的钩子,但我没有找到合适的钩子。。。。

    • 主要内容:实例,实例,下拉菜单中的分割线,实例,下拉菜单中的标题,实例,下拉菜单中的可用项与禁用项,实例,下拉菜单的定位,实例,下拉菜单弹出方向设置,实例,实例,实例,下拉菜单设置文本,实例,按钮中设置下拉菜单,实例,实例Bootstrap4 下拉菜单依赖于 popper.min.js。 下拉菜单是可切换的,是以列表格式显示链接的上下文菜单。 实例 <div class="dropdown"> <button type="button" class="btn btn-primary dropdo

    • 问题内容: 我有一个带有2个下拉框的Wordpress网站。当我在第一个下拉框中选择一个选项时,我希望第二个选项被PHP函数中的数据刷新。为此,我需要ajax。但是我正在努力将Ajax绑定到Wordpress中。 HTML看起来像这样: 现在,例如,当用户选择“销售”时,我希望第二个选择标签重新加载来自PHP数组的匹配价格。 PHP函数如下所示: 我将jQuery Ajax调用保存在单独的.js文

    • 我有一个基于WordPress的网站,我的主题通过添加“当前菜单项”类来突出当前菜单项。 问题是,我有一个包含3个子菜单项的菜单项,它们都指向具有不同容器ID的相同页面(它们的href包含容器ID),因此它们都被突出显示。 如何仅突出显示href指向当前查看的容器的菜单项? 我尝试了这个答案,在标签后面插入了以下内容: