WordPress中注册菜单与调用菜单的方法详解


Posted in PHP onDecember 18, 2015

register_nav_menus()(注册菜单)
register_nav_menus() 函数用来注册一个菜单,菜单指的是 WordPress 3.0+ 的菜单管理器,注册之后用户就可以在菜单管理器里拖动生成导航菜单了。

用法

register_nav_menus( $locations );

参数

$locations

(数组)(必须)要注册的菜单,键值为菜单 ID,键名为菜单名称,可以一次创建多个。

默认值:None

返回值

该函数无返回值。

例子

/**
  *建立菜单
  *http://www.endskin.com/register_nav_menus/
*/
function Bing_register_nav_menus(){
  register_nav_menus( array(
    'header_menu' => __( '顶部菜单', 'Bing' ),
    'footer_menu' => __( '页脚菜单', 'Bing' )
  ));
}
add_action( 'init', 'Bing_register_nav_menus' );

其它

该函数位于:wp-includes/nav-menu.php

wp_nav_menu()(菜单调用)
下面就来说一下怎么调用用户添加好后的菜单。

调用菜单主要使用 wp_nav_menu() 函数,wp_nav_menu() 函数的参数比较多,所以功能非常强大,这里会一个一个的讲解。

用法

wp_nav_menu( $args );

参数

参数只有一个 $args,但这是一个数组,通过给数组添加参数,可以定制更多细节,下边是默认值:

$defaults = array(
  'theme_location' => '',
  'menu'      => '',
  'container'    => 'div',
  'container_class' => '',
  'container_id'  => '',
  'menu_class'   => 'menu',
  'menu_id'     => '',
  'echo'      => true,
  'fallback_cb'   => 'wp_page_menu',
  'before'     => '',
  'after'      => '',
  'link_before'   => '',
  'link_after'   => '',
  'items_wrap'   => '<ul id="%1$s" class="%2$s">%3$s</ul>',
  'depth'      => 0,
  'walker'     => ''
);
wp_nav_menu( $defaults );

详解:

theme_locaton

(字符串)(可选)要调用的菜单的名字,比如 header_menu,如果没指定,则默认显示第一个注册的菜单。

默认值:None

menu

(字符串)(可选)使用导航菜单的名称调用菜单,可以是 ID、别名和名字(按顺序匹配)。

默认值:None

container

(字符串)(可选)导航菜单的容器类型,只支持 div 和 nav 标签,如果是其它值,ul 父节点的标签将不会显示。也可以设置成 False 去掉 ul 父节点。

默认值:div

container_class

(字符串)(可选)ul 父节点的 class 属性。

默认值:menu-{menu slug}-container

container_id

(字符串)(可选)ul 父节点的 id 属性。

默认值:None

menu_class

(字符串)(可选)ul 节点的 class 属性。

默认值:None

menu_id

(字符串)(可选)ul 节点的 id 属性。

默认值:菜单别名

echo

(布尔)(可选)返回导航菜单的 Html 代码还是直接打印输出,如果你想把导航菜单代码存到变量里请设置成 False.

默认值:True(直接打印输出)

fallback_cb

(回调函数)(可选)后台没有设置此菜单时默认显示的内容。

默认值:wp_page_menu

before

(字符串)(可选)显示在每个菜单链接前的文本。

默认值:None

after

(字符串)(可选)显示在每个菜单链接后的文本。

默认值:None

link_before

(字符串)(可选)显示在每个菜单链接文本前的文本。

默认值:None

link_after

(字符串)(可选)显示在每个菜单链接文本后的文本。

默认值:None

items_wrap

(字符串)(可选)替换 ul 的 class 属性。

默认值:None

depth

(整形)(可选)

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

默认值:0

walker

(对象)(可选)菜单的结构对象。

默认值:new Walker_Nav_Menu

例子

<?php wp_nav_menu( array( 'theme_location' => 'header_menu', 'container' => false, 'items_wrap' => '<ul id="topmenu">%3$s</ul>', 'fallback_cb' => 'Bing_menu_null_fallback' ) ); ?>

其它

此函数位于:wp-includes/nav-menu-template.php

PHP 相关文章推荐
php5 图片验证码实现代码
Dec 11 PHP
PHP中date()日期函数有关参数整理
Jul 19 PHP
PHP中数组的三种排序方法分享
May 07 PHP
php中数字、字符与对象判断函数用法实例
Nov 26 PHP
php将金额数字转化为中文大写
Jul 09 PHP
PHP+MySQL实现无极限分类栏目的方法
Dec 23 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
php解决和避免form表单重复提交的几种方法
Aug 31 PHP
PHP请求远程地址设置超时时间的解决方法
Oct 29 PHP
php桥接模式应用案例分析
Oct 23 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
Dec 12 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 PHP
讲解WordPress开发中一些常用的debug技巧
Dec 18 #PHP
详解WordPress中给链接添加查询字符串的方法
Dec 18 #PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
Dec 18 #PHP
详解WordPress中用于合成数组的wp_parse_args()函数
Dec 18 #PHP
WordPress中用于获取文章信息以及分类链接的函数用法
Dec 18 #PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
Dec 18 #PHP
详解 PHP加密解密字符串函数附源码下载
Dec 18 #PHP
You might like
php 中文字符入库或显示乱码问题的解决方法
2010/04/12 PHP
PHP闭包函数详解
2016/02/13 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
跨域表单提交状态的变相判断代码
2009/11/12 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
javascript html5实现表单验证
2016/03/01 Javascript
详解JavaScript中基于原型prototype的继承特性
2016/05/05 Javascript
jQuery 获取多选框的值及多选框中文的函数
2016/05/16 Javascript
jquery属性,遍历,HTML操作方法详解
2016/09/17 Javascript
AngularJS ui-router (嵌套路由)实例
2017/03/10 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
vue-router的两种模式的区别
2019/05/30 Javascript
vue 实现基础组件的自动化全局注册
2020/12/25 Vue.js
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
[49:08]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
Python实现比较两个文件夹中代码变化的方法
2015/07/10 Python
Python实现telnet服务器的方法
2015/07/10 Python
PyCharm 常用快捷键和设置方法
2017/12/20 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
Python logging日志模块 配置文件方式
2020/07/12 Python
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
《一本男孩子必读的书》教学反思
2014/02/19 职场文书
社区好人好事材料
2014/12/26 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书