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 相关文章推荐
xml+php动态载入与分页
Oct 09 PHP
PHP新手上路(二)
Oct 09 PHP
[转帖]PHP世纪万年历
Dec 06 PHP
php MYSQL 数据备份类
Jun 19 PHP
php除数取整示例
Apr 24 PHP
PHP ajax 异步执行不等待执行结果的处理方法
May 27 PHP
PHP下载生成的csv文件及问题总结
Aug 06 PHP
php封装的表单验证类完整实例
Oct 19 PHP
php插入含有特殊符号数据的处理方法
Nov 24 PHP
php微信公众号js-sdk开发应用
Nov 28 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 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生成略缩图代码
2012/07/16 PHP
php fsockopen伪造post与get方法的详解
2013/06/14 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
jquery中的$(document).ready()与window.onload的区别
2009/11/18 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
2012/10/11 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
JS实现同时搜索百度和必应的方法
2015/01/27 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
jquery判断输入密码两次是否相等
2020/04/22 Javascript
Node.js常用工具之util模块
2017/03/09 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
vue 动态修改a标签的样式的方法
2018/01/18 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
[02:36]DOTA2混沌骑士 英雄基础教程
2013/11/26 DOTA
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
python实现NB-IoT模块远程控制
2018/06/20 Python
pandas重新生成索引的方法
2018/11/06 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
python基于Selenium的web自动化框架
2019/07/14 Python
python 多进程共享全局变量之Manager()详解
2019/08/15 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
表达自我的市场:Society6
2018/08/01 全球购物
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
光声世纪笔试题目
2012/08/25 面试题
C#公司笔试题
2014/03/28 面试题
啦啦队口号大全
2014/06/16 职场文书
2015年电话销售工作总结范文
2015/04/20 职场文书
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS
Python中super().__init__()测试以及理解
2021/12/06 Python