Products
GG网络技术分享 2025-03-18 16:14 0
大家好,这节课分享WordPress的菜单。最近有同学向我咨询过WordPress菜单如何使用的问题。虽然在每个主题课中都讲过WordPress菜单,但我还是想把它拿出来讲一下,因为每个WordPress网站都会用到菜单,菜单就是网站导航。
我在第一次用WordPress这个时候,也被WordPress菜单给难住了,不知道如何操作,当时也没人指点,也没有相关教程。加上WordPress菜单管理方式的“神逻辑”,一看就明白,一点就透,不看、不点不容易发现。
其实WordPress管理方式很优秀,它和我们常用的国内CMS栏目菜单管理方式区别很大,下面分享一下要点,都是容易遇到的问题。下图中我标记红色的地方都是“关键点”。
第一个:现有的菜单项目怎么排序?
WordPress后台“外观”里面的“菜单”,这里有很多个菜单,每个菜单都有一个名字,选中一个菜单,比如网站主导航菜单,里面有很多项目,直接用鼠标左键拖拽“菜单项目”,就像鼠标拖动桌面文件图标一样,改变它们的位置,甚至层级,比如二级导航下拉菜单,还有三级菜单。如上图(推荐使用谷歌、火狐等浏览器,不推荐360浏览器)
第二个:如何把新的内容添加到右侧菜单?
菜单界面左侧页面、文章、自定义链接……可以理解为菜单库(如上图),选中你要的项目,添加到右侧的菜单中。比如我们可以把左侧的文章分类,或者某个页面、或者某篇文章,添加到右侧菜单中,然后在右侧调整菜单的顺序和层级。
第三:左侧的“菜单库”没有我要的项目怎么办?
比如Avada主题,我要添加Portfolio分类到右侧。左侧看不到Portfolio分类。需要到页面的顶部展开“显示选项”,选中Portfolio分类,这样左侧的菜单库就会出现Portfolio分类。如下图:
这节课内容就到这里,下次课见。
要想实现自定义菜单,需要用到的函数是wp_nav_menu(),给这个函数传递一些参数就可以输出自定义菜单菜单,下面简单讲讲如何使用使用这个函数。
首先,在主题目录下的functions.php的 <?php ….. ?> 之间,添加以下菜单注册代码,这样你就可以在主题文件中使用wp_nav_menu函数了:
// This theme uses wp_nav_menu() in one location. register_nav_menus(); |
接着我们在主题的导航栏处调用wp_nav_menu(),即可输出导航菜单HTML代码:
<?php // 列出顶部导航菜单,菜单名称为mymenu,只列出一级菜单 wp_nav_menu( array( \'menu\' => \'mymenu\', \'depth\' => 1) ); ?> 以上代码输出的HTML代码形式如下: <div class=\"menu-menu-container\"> <ul class=\"menu\" id=\"menu-menu\"> <li class=\"...\" id=\"menu-item-1\"><a href=\"...\">首页</a></li> <li class=\"...\" id=\"menu-item-2\"><a href=\"...\">分类A</a></li> ... </ul> </div> |
这里列出的 li 项为你在后台 – 外观 – 菜单添加的栏目,如果你还没有在后台添加菜单,导航栏将列出所有页面。另外,wp_nav_menu会为每个 li 添加class,不同的class标记这个菜单项的属性,如当前打开的是某个文章页面,分类A 就是这篇文章所属的分类,那么 分类A 所在的 li 将会如下代码所示:
<li class=\"menu-item menu-item-type-taxonomy current-post-ancestor current-menu-parent current-post-parent menu-item-5\" id=\"menu-item-2\"><a href=\"...\">分类A</a></li> |
如果是在首页,那么首页的菜单项的 li 可能会如下所示:
<li class=\"menu-item menu-item-type-custom current-menu-item current_page_item menu-item-home menu-item-4\" id=\"menu-item-1\"><a href=\"..\">首页</a></li> 从这些class的名称就知道它们的作用,通过给这些class添加css属性,可以达到如高亮当前导航菜单的目的,如将当前菜单链接定义成红色: .current-post-ancestor a, .current-menu-parent a, .current-menu-item a, .current_page_item a { color: red; } |
好了,WordPress 3.0的自定义菜单的调用就是这么简单。wp_nav_menu还有很多参数,如自定义 ul 节点、ul 父节点的id和class的参数等等,详情可以参考文档:官方文档 | 中文文档
使用分类和页面作为导航栏
在 WordPress 3.0 之前,大部分WordPress主题都是拿页面作为导航栏的,导航中只能添加页面,显得不够自由。我刚用WordPress 2.7的时候,就为此问题烦恼,最后翻了文档,查了一些资料,实现了在导航中添加分类,详情请看我之前写的文章:WordPress 分类做导航栏,并高亮显示
非常规导航栏的制作
以上提到的两种方式,都是使用WordPress自带的函数来实现,他们输入的HTML代码也都是限定好的,就是使用 ul li 的形式来构建菜单列表:如:
<ul> <li class=\"..\">...</li> <li class=\"..\">...</li> </ul> |
如果主题的前端代码不是你写的,而且导航栏的代码写得很龟毛,这根本不是上面的WordPress标准的 ul 导航栏形式,如下面的代码:
<dl> <dt><strong>标题</strong></dt> <dd><a target=\"_blank\" title=\"#\" href=\"#\">菜单A</a></dd> <dd><a target=\"_blank\" title=\"#\" href=\"#\">菜单B</a></dd> </dl> |
如您对本文有所疑义或者有任何需求,欢迎咨询本网站,希望大家多多支持!
Demand feedback