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 相关文章推荐
我的群发邮件程序
Oct 09 PHP
编写漂亮的代码 - 将后台程序与前端程序分开
Apr 23 PHP
PHP加速 eAccelerator配置和使用指南
Jun 05 PHP
PHP+ACCESS 文章管理程序代码
Jun 21 PHP
php编程实现获取excel文档内容的代码实例
Jun 28 PHP
使用php实现下载生成某链接快捷方式的解决方法
May 07 PHP
PHP 安全检测代码片段(分享)
Jul 05 PHP
利用curl抓取远程页面内容的示例代码
Jul 23 PHP
PHP生成随机字符串(3种方法)
Sep 25 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
Sep 28 PHP
php把字符串指定字符分割成数组的方法
Mar 12 PHP
laravel框架添加数据,显示数据,返回成功值的方法
Oct 11 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
Ajax PHP分页演示
2007/01/02 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
jQuery实现下滑菜单导航效果代码
2015/08/25 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
基于JavaScript定位当前的地理位置
2017/04/11 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
vue watch监听对象及对应值的变化详解
2018/02/24 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
Vue学习之常用指令实例详解
2020/01/06 Javascript
python制作一个桌面便签软件
2015/08/09 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
Python中turtle作图示例
2017/11/15 Python
[原创]pip和pygal的安装实例教程
2017/12/07 Python
Python使用遗传算法解决最大流问题
2018/01/29 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
基于python-pptx库中文文档及使用详解
2020/02/14 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
党员民主生活会整改措施
2014/09/26 职场文书
员工离职感谢信
2015/01/22 职场文书
幼师求职自荐信
2015/03/26 职场文书
React实现动效弹窗组件
2021/06/21 Javascript
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis