1. 主页
  2. 文档
  3. 基于BootStap制作WordPress主题
  4. 制作菜单(NAV)

制作菜单(NAV)

提前阅读:

WordPress主题制作之菜单

wp_nav_menu详解

https://www.cnblogs.com/zhaoweidong/p/10296776.html

在使用wp_nav_menu设置菜单显示项,对于二级菜单的类名(默认sub-menu)无法修改。在这种情况下可以利用Walker来设置。

实际上,wp_nav_menu()函数默认调用了一个核心提供的对象,即“Walker_ Nav_Menu”。

备注:多余的类和ID是程序自动添加的,可以去除或保留菜单多余类名,参考相关文档《去除或保留菜单多余类名》。

其他来源:

https://github.com/wp-bootstrap/wp-bootstrap-navwalker

这里重新写了一个类,比如起名wp_bootstrap_navwalker(),继承“Walker_ Nav_Menu”并重新编写。以便构造合适的多级菜单。

通过代码:’walker’ => new wp_bootstrap_navwalker() 调用该对象。实现对二级菜单类名的修改。

案例,原始代码如下(还没有调用wordpress代码):

第一步、准备类:

如下类是我们在一直支持bootstrap的主题中找到的,

文件名:class-wp-bootstrap-navwalker.php

类:understrap_WP_Bootstrap_Navwalker()

class Understrap_WP_Bootstrap_Navwalker extends Walker_Nav_Menu

<!– Navigation –>
<nav class=“navbar navbar-expand-lg navbar-dark bg-dark static-top”>
<div class=“container”>
<class=“navbar-brand” href=“#”>Start Bootstrap</a>
<button class=“navbar-toggler” type=“button” datatoggle=“collapse” datatarget=“#navbarResponsive” ariacontrols=“navbarResponsive” ariaexpanded=“false” arialabel=“Toggle navigation”>
<span class=“navbar-toggler-icon”></span>
</button>
<div class=“collapse navbar-collapse” id=“navbarResponsive”>
<ul class=“navbar-nav ml-auto”>
<li class=“nav-item active”>
<class=“nav-link” href=“#”>Home
<span class=“sr-only”>(current)</span>
</a>
</li>
<li class=“nav-item”>
<class=“nav-link” href=“#”>About</a>
</li>
<li class=“nav-item”>
<class=“nav-link” href=“#”>Services</a>
</li>
<li class=“nav-item”>
<class=“nav-link” href=“#”>Contact</a>
</li>
</ul>
</div>
</div>
</nav>

第二步:在functions.php导入bootstrap菜单样式

include_once(‘inc/wp_bootstrap_navwalker.php’);

第三步:显示:

<!– Navigation –>
<nav class=“navbar navbar-expand-lg navbar-dark bg-dark static-top”>
<div class=“container”>
<class=“navbar-brand” href=“#”>Start Bootstrap</a>
<button class=“navbar-toggler” type=“button” datatoggle=“collapse” datatarget=“#navbarResponsive” ariacontrols=“navbarResponsive” ariaexpanded=“false” arialabel=“Toggle navigation”>
<span class=“navbar-toggler-icon”></span>
</button>
<!– The WordPress Menu goes here –>
<?phpwp_nav_menu(
array(
‘theme_location’ => ‘menu-1’,
‘container_class’ => ‘collapse navbar-collapse’,
‘container_id’ => ‘navbarNavDropdown’,
‘menu_class’ => ‘navbar-nav ml-auto’,
‘fallback_cb’ => ,
‘menu_id’ => ‘main-menu’,
‘depth’ => 2,
‘walker’ => new Understrap_WP_Bootstrap_Navwalker(),
)
);

 

?>
</div>
</nav>

对应HTML

<!– Navigation –>
<nav class=“navbar navbar-expand-lg navbar-dark bg-dark static-top”>
<div class=“container”>
<class=“navbar-brand” href=“#”>Start Bootstrap</a>
<button class=“navbar-toggler” type=“button” datatoggle=“collapse” datatarget=“#navbarResponsive” ariacontrols=“navbarResponsive” ariaexpanded=“false” arialabel=“Toggle navigation”>
<span class=“navbar-toggler-icon”></span>
</button>
<!– The WordPress Menu goes here –>
<div id=“navbarNavDropdown” class=“collapse navbar-collapse”>
<ul id=“main-menu” class=“navbar-nav ml-auto”>
<li itemscope=“itemscope” itemtype=“https://www.schema.org/SiteNavigationElement” id=“menu-item-1121” class=“menu-item menu-item-type-custom menu-item-object-custom menu-item-1121 nav-item”><a title=“Home” href=“#” class=“nav-link”>Home</a></li>
<li itemscope=“itemscope” itemtype=“https://www.schema.org/SiteNavigationElement” id=“menu-item-1122” class=“menu-item menu-item-type-custom menu-item-object-custom menu-item-1122 nav-item”><a title=“About” href=“#” class=“nav-link”>About</a></li>

文章

这篇文章对您有用吗?

我们要如何帮助您?