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 相关文章推荐
PHP调用三种数据库的方法(3)
Oct 09 PHP
ajax缓存问题解决途径
Dec 06 PHP
PHP写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
Jul 13 PHP
php中mysql模块部分功能的简单封装
Sep 30 PHP
3个PHP多维数组转为一维数组的方法实例
Mar 13 PHP
PHP实现AES256加密算法实例
Sep 22 PHP
PHP Oauth授权和本地加密实现方法
Aug 12 PHP
PHP中phar包的使用教程
Jun 14 PHP
PHP封装的XML简单操作类完整实例
Nov 13 PHP
php对微信支付回调处理的方法
Aug 23 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
Oct 15 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函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
PHP抽象类 介绍
2012/06/13 PHP
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
解决PHP超大文件下载,断点续传下载的方法详解
2013/06/06 PHP
php查询mssql出现乱码的解决方法
2014/12/29 PHP
PHP上传文件时自动分配路径的方法
2015/01/09 PHP
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
学习掌握JavaScript中this的使用技巧
2016/08/29 Javascript
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
VUE实现一个分页组件的示例
2017/09/13 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
Python多线程编程(一):threading模块综述
2015/04/05 Python
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
python中子类继承父类的__init__方法实例
2016/12/15 Python
使用Python处理Excel表格的简单方法
2018/06/07 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
HTML5 Video标签的属性、方法和事件汇总介绍
2015/04/24 HTML / CSS
网站编辑求职信
2013/10/17 职场文书
单位未婚证明范本
2014/01/18 职场文书
三八活动策划方案
2014/08/17 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis
Debian11 Xfce终端光标的颜色怎么设置?
2022/08/14 数码科技