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 相关文章推荐
CodeIgniter php mvc框架 中国网站
May 26 PHP
php 模拟POST|GET操作实现代码
Jul 20 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
Mar 31 PHP
joomla jce editor 解决上传中文名文件失败问题
Jun 09 PHP
php读取图片内容并输出到浏览器的实现代码
Aug 08 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
Nov 18 PHP
php浏览历史记录的方法
Mar 10 PHP
PHP实现WebService的简单示例和实现步骤
Mar 27 PHP
php获取本机真实IP地址实例代码
Mar 31 PHP
php支付宝在线支付接口开发教程
Sep 19 PHP
PHP数组生成XML格式数据的封装类实例
Nov 10 PHP
PHP将字符串首字母大小写转换的实例
Jan 21 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之PHP语法学习笔记1
2006/12/17 PHP
php发送html格式文本邮件的方法
2015/06/10 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
javascript之Partial Application学习
2013/01/10 Javascript
jquery创建一个ajax关键词数据搜索实现思路
2013/02/26 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
js实现自动轮换选项卡
2017/01/13 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
2017/08/23 Javascript
js 开发之autocomplete=&quot;off&quot;在chrom中失效的解决办法
2017/09/28 Javascript
Bootstrap modal只加载一次数据的解决办法(推荐)
2017/11/24 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
详解用async/await来处理异步
2019/08/28 Javascript
简明 Python 基础学习教程
2007/02/08 Python
python中尾递归用法实例详解
2015/04/28 Python
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
django 发送邮件和缓存的实现代码
2018/07/18 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
python爬取网易云音乐热歌榜实例代码
2020/08/07 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
css3实现超立体3D图片侧翻倾斜效果
2014/04/16 HTML / CSS
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
大专毕业生自我评价分享
2013/11/10 职场文书
平面网站制作专科生的自我评价分享
2013/12/11 职场文书
个性与发展自我评价
2014/02/11 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书
周一给客户的问候语
2015/11/10 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书
用Python爬虫破解滑动验证码的案例解析
2021/05/06 Python
Python中requests做接口测试的方法
2021/05/30 Python
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js