自定义菜单

自定义菜单 一、在functions.php里注册菜单 1 2 3 register_nav_menus( a…

自定义菜单

一、在functions.php里注册菜单

二、在模板相应位置调取菜单

每个参数的详细介绍如下:

  • $theme_locaton:(字符串)(可选)

默认值: None
用于在调用导航菜单时指定注册过的某一个导航菜单名,如果没有指定,则显示第一个。

  • $menu:(字符串)(可选)

默认值: None
使用导航菜单的名称调用菜单,可以是 id, slug, name (按顺序匹配的) 。

  • $container:(字符串)(可选)

默认值: div
ul 父节点(这里指导航菜单的容器)的标签类型,只支持div 和 nav 标签, 如果是其它值, ul 父节点的标签将不会被显示。也可以用false(container => false)去掉ul父节点标签。

  • $container_class:(字符串)(可选)

默认值: menu-{menu slug}-container
ul 父节点的 class 属性值。

  • $container_id:(字符串)(可选)

默认值: None
ul 父节点的 id 属性值。

  • $menu_class:(字符串)(可选)

默认值: menu
ul 节点的 class 属性值。

  • $menu_id:(字符串)(可选)

默认值: menu slug, 自增长的
ul 节点的 id 属性值。

  • $echo:(布尔型)(可选)

默认值: true (直接显示)
确定直接显示导航菜单还是返回 HTML 片段,如果想将导航的代码作为赋值使用,可设置为false。

  • $fallback_cb:(字符串)(可选)

默认值: wp_page_menu (显示页面列表作为菜单)
用于没有在后台设置导航时调的回调函数。

  • $before:(字符串)(可选)

默认值: None
显示在每个菜单链接前的文本。

  • $after:(字符串)(可选)

默认值: None
显示在每个菜单链接后的文本。

  • $link_before:(字符串)(可选)

默认值: None
显示在每个菜单链接文本前的文本。

  • $link_after:(字符串)(可选)

默认值: None
显示在每个菜单链接文本后的文本。

  • $items_wrap:(字符串)(可选)

默认值: None
使用字符串替换修改ul的class。

  • $depth:(整型)(可选)

默认值: 0
显示菜单的深度, 当数值为 0 时显示所有深度的菜单。

  • $walker:(对象型)(可选)

默认值:  new Walker_Nav_Menu

示例

可以使用下面的函数调用 左边栏菜单:

其中,’theme_location’ 后面的值 是 ‘left-menu’,就是调用前面注册的那个 左边栏菜单,而 ‘container_id’ 自定义为 ‘menu_left’,最终输出的html结构如下:

给li增加class

多级菜单自定义

方法一:

这个类可以写在functions.php里

增加上面代码的时候遇到一个问题,不能给has_children的li中增加class,找了半天找到解决方法:

https://wordpress.stackexchange.com/questions/16818/add-has-children-class-to-parent-li-when-modifying-walker-nav-menu
最终代码如下

 方法二:

wordpress输出bootstrap的菜单结构这个方法官网已经出了新版本bootstrap4的了。以下是老版本。使用时,用function文件夹内整理的。

问题一:解决三级菜单添加类名

对照上面代码,替换部分为:

问题二:给has_children的a标签增加图标

 

类别:WordPress开发

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册