这是一个控制Wordpress主题菜单显示的函数,这也是在Wordpress主题开发中比较重要的一个函数,详细的了解此函数有利于学习Wordpress的主题开发。
此文来源于:《官方函数文档:wp_nav_menu()》
输入内容格式如下:
wp_nav_menu( array $args = array() )
显示导航菜单
这是现成的代码片段(不是真正的贡献,比其他任何快捷方式都重要):
wp_nav_menu( array $args = array(
'menu' => "", // (int|string|WP_Term) 所需菜单。接受菜单ID、slug、name或object。
'menu_class' => "", // (string) CSS类,用于构成菜单的ul元素。默认menu。
'menu_id' => "", // (string) 应用于构成菜单的ul元素的ID。默认为menu slug,递增。
'container' => "", // (string) 是否包装ul,以及用什么包装ul。默认div。
'container_class' => "", // (string) 应用于容器的类。默认“menu-{menu slug}-container”。
'container_id' => "", // (string) 应用于容器的id。
'fallback_cb' => "", // (callable|bool) 如果菜单不存在,将启动回调函数。默认为wp_page_menu。设置为false表示没有回退。
'before' => "", // (string) 链接标记前的文本。
'after' => "", // (string) Text after the link markup.
'link_before' => "", // (string) 链接文本之前的文本。
'link_after' => "", // (string) Text after the link text.
'echo' => "", // (bool) 是回显菜单还是返回菜单。默认为true。
'depth' => "", // (int) 要包含多少层次结构。0表示全部。默认值0。
'walker' => "", // (object) 自定义walker类的样式。
'theme_location' => "", // (string) 要使用的主题位置。必须使用register_nav_menu()注册,以便用户可以选择。
'items_wrap' => "", // (string) 列表项应如何包装。默认值是具有id和类的ul。使用带编号占位符的printf()格式。
'item_spacing' => "", // (string) 是否在菜单的HTML中保留空白。接受“preserve”或“discard”。默认preserve。
) );
参数
$ args
(array) (可选) 导航菜单参数的数组。
- 'menu'
(int | string | WP_Term)所需菜单。接受菜单ID,段,名称或对象。 - 'menu_class'
(字符串) CSS类,用于形成菜单的ul元素。默认为“菜单”。 - 'menu_id'
(字符串)应用于构成菜单的ul元素的ID。默认为菜单项,递增。 - 'container'
(字符串)是否包装ul,以及包装什么。默认为“ div”。 - 'container_class'
(字符串)应用于容器的类。默认为“菜单-{菜单子弹}-容器”。 - 'container_id'
(字符串)应用于容器的ID。 - 'fallback_cb'
(callable | bool)如果菜单不存在,则将触发回调函数。默认值为“ wp_page_menu”。设置为false不会回退。 - 'before'
(字符串)链接标记之前的文本。 - “之后”
(字符串)链接标记之后的文本。 - 'link_before'
(字符串)链接文本之前的文本。 - 'link_after'
(字符串)链接文本之后的文本。 - 'echo'
(布尔)是回显菜单还是返回菜单。默认为true。 - 'depth'
(int)要包含多少个层次结构。0表示全部。默认值0 - 'walker'
(对象)自定义walker类的实例。 - 'theme_location'
(字符串)要使用的主题位置。必须向register_nav_menu()注册,以便用户选择。 - 'items_wrap'
(字符串)应该如何包装列表项。默认值为带有ID和类的ul。使用带编号占位符的printf()格式。 - 'item_spacing'
(字符串)是否保留菜单HTML内的空格。接受“保留”或“丢弃”。默认为“保留”。
默认值:array()
返回
(string | false | void)如果$ echo为false,则菜单输出,如果没有项目或没有找到菜单,则为false。
更多信息
用法
1个 | wp_nav_menu( $args ); |
给定一个theme_location参数,该函数将显示分配给该位置的菜单。如果不存在这样的位置或没有为其分配菜单,则参数fallback_cb将确定显示的内容。
如果未提供theme_location参数,则函数显示
- 与菜单参数给定的ID,子段或名称匹配的菜单;
- 否则,第一个非空菜单;
- 否则(或者如果menu给定的菜单为空),则输出fallback_cb参数给定的函数(默认为wp_page_menu());
- 否则什么都没有。
菜单项CSS类
以下类适用于菜单项,即HTML生成的HTML <li>标签wp_nav_menu()
:
所有菜单项
.menu-item
此类添加到每个菜单项。.menu-item-has-children
此类已添加到具有子项的菜单项。.menu-item-object-{object}
此类添加到每个菜单项,其中{object}是发布类型或分类法。.menu-item-object-category
此类已添加到与类别相对应的菜单项中。.menu-item-object-tag
此类已添加到与标签相对应的菜单项中。.menu-item-object-page
此类已添加到与静态页面相对应的菜单项中。.menu-item-object-{custom}
此类已添加到与自定义帖子类型或自定义分类法相对应的菜单项。.menu-item-type-{type}
此类添加到每个菜单项,其中{type}是“ post_type”或“分类”。.menu-item-type-post_type
此类被添加到与帖子类型相对应的菜单项中:静态页面或自定义帖子类型。.menu-item-type-taxonomy
将此类添加到与分类法相对应的菜单项:即类别,标签或自定义分类法。
当前页面菜单项
.current-menu-item
此类已添加到与当前呈现的页面相对应的菜单项中。
当前页面父菜单项
.current-menu-parent
此类已添加到与当前呈现的页面的层次结构父级相对应的菜单项中。.current-{object}-parent
此类被添加到与当前渲染的对象的层次父级相对应的菜单项中,其中{object}对应于.menu-item-object- {object}所使用的值。.current-{type}-parent
此类已添加到与当前呈现的类型的层级父级相对应的菜单项中,其中{type}对应于.menu-item-type- {type}所使用的值。
当前页面祖先菜单项
.current-menu-ancestor
此类被添加到与当前呈现的页面的层次祖先相对应的菜单项中。.current-{object}-ancestor
此类已添加到与当前渲染的对象的层级祖先相对应的菜单项中,其中{object}对应于.menu-item-object- {object}所使用的值。.current-{type}-ancestor
此类被添加到与当前呈现类型的层次结构祖先相对应的菜单项中,其中{type}对应于.menu-item-type- {type}所使用的值。
网站首页菜单项
.menu-item-home
此类已添加到与网站首页相对应的菜单项中。
并且向后兼容wp_page_menu()
添加了以下类以保持与[[Function Reference / wp_page_menu | wp_page_menu() ]]函数输出:
.page_item
此类已添加到与静态页面相对应的菜单项中。.page_item_has_children
此类被添加到具有子页面的菜单项中。.page-item-$ID
此类被添加到与静态页面相对应的菜单项中,其中$ ID是静态页面ID。.current_page_item
此类被添加到与当前呈现的静态页面相对应的菜单项中。.current_page_parent
此类已添加到与当前呈现的静态页面的层次结构父级相对应的菜单项中。.current_page_ancestor
此类已添加到与当前呈现的静态页面的分层祖先相对应的菜单项中。