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小技巧搜集,每个PHPer都来露一手
Jan 02 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
Apr 25 PHP
php selectradio和checkbox默认选择的实现方法详解
Jun 29 PHP
教你如何使用php session
Oct 28 PHP
PHP调用VC编写的COM组件实例
Mar 29 PHP
php简单实现发送带附件的邮件
Jun 10 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
Dec 19 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
Dec 25 PHP
PHP Cli 模式设置进程名称的方法
Jun 12 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
Apr 07 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学习资料汇总与网址
2007/03/16 PHP
PHP nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
2009/08/21 PHP
php微信公众平台开发类实例
2015/04/01 PHP
PHP中number_format()函数的用法讲解
2019/04/08 PHP
javascript下4个跨浏览器必备的函数
2010/03/07 Javascript
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
JavaScript判断文件上传类型的方法
2014/09/02 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
2015/09/30 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
AngularJS控制器继承自另一控制器
2016/05/09 Javascript
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
vue v-model表单控件绑定详解
2017/05/17 Javascript
javascript数组去重方法总结(推荐)
2019/03/20 Javascript
Vue CLI2升级至Vue CLI3的方法步骤
2019/05/20 Javascript
js实现简单抽奖功能
2020/11/24 Javascript
OpenLayers3实现图层控件功能
2020/09/25 Javascript
Python打造出适合自己的定制化Eclipse IDE
2016/03/02 Python
python实现用户管理系统
2018/01/10 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
Python使用Slider组件实现调整曲线参数功能示例
2019/09/06 Python
Django数据结果集序列化并展示实现过程
2020/04/22 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
雅诗兰黛旗下专业男士保养领导品牌:Lab Series
2017/05/15 全球购物
Linux如何为某个操作添加别名
2015/02/05 面试题
董事长秘书岗位职责
2013/11/29 职场文书
《美丽的田园》教学反思
2014/03/01 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
2016年春季运动会通讯稿
2015/11/25 职场文书
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python
Golang 结构体数据集合
2022/04/22 Golang