PHP 学习笔记 (四)
Wordpress 框架中的一些函数:
wp_get_nav_menu($default): 根据条件$default 获取menu, 默认获取所有的menu
其中 $default 默认如下所示:
$default = array(
‘theme_location’ =>'',
'menu' =>'',
'container' =>'div',
'container_class' => 'menu-{menu_slug}-container',
'container_id' =>'',
'menu_class'=>'menu',
'echo' => true,
'fallback_cb'=>'wp_page_menu',
'before' =>'',
'after' =>'',
'link_before' =>'',
'link_after' =>'',
'items_wrap' =>'<ul id=''%1s'>%3$s</ul>,
'depth' =>0,
'walker' =>''
);
参数的说明:
$theme_location: 默认为none, 指定注册过的某一个导航菜单,若未指定,则显示第一个。 如primary, secondary等
$menu:默认为none, 使用导航菜单的名称调用菜单,可以使 term_id, slug, name 等属性
$container: 默认为 div, 是ul的父节点,只支持div 和nav标签,也可用false 去掉ul 父节点的标签
$container_class: 默认为menu-{menu_slug}-container, 是ul 父节点的class属性
$container_id: 默认为none , ul父节点的id
$menu_class: 默认为menu, ul节点的class属性
$menu_id: 默认为menu slug, 自增长的ul节点的id属性值
$echo: 默认为true 确定直接显示导航菜单韩式返回HTML片段,如果想将导航的代码作为肤质使用,可以设置为false.
$fallback_db: 默认值为wp_page_menu, 用于没有在后台设置导航时调的回调函数
$items_wrap: 默认为none, 使用字符串修改替换ul的class
$depth: 默认为0, 显示菜单的层级深度, 为0时显示所有深度的菜单
$walker: 默认使用 new Walker_Nav_Menu(), 自定义的遍历对象,调用一个Walker子类对象定义显示导航菜单。
使用Walker 子类制作自定义菜单:
Walker 类是一个抽象类,该类定义了如何显示导航等,这个抽象类包含4个属性和6个方法:
属性:
$tree_type , $db_fields, $max_pages, $has_children
方法:
start_lvl: 当Walker类达到结构顶层时执行该方法,可用于输出开始元素
end_lvl: 关闭start_lvl输出的元素标签
start_el: 为每一个元素输出一个开始标签
end_el: 关闭start_el 的标签
(核心)display_element: 定义如何显示树形结构中的元素
(核心)walk 根据$max_depth, 循环树形结构中的每一个元素
如果需要自定义导航,可以直接写一个类类继承Walker, 但是这样要重写所有的方法。如果改动不大,可以直接继承Walker_NAV_Menu类,重写需要修改的类即可。
在重写 display_element时, 参数$element 包含当前遍历到的元素的所有信息, 如可以用$element->object_id 来获取当前元素的term_id
代码片段: 使用add_shorcode('name','function_name') 可在系统中产生一个代码片段 ['name'], 可以在wordpress的后台文章中直接使用,或者在代码中使用 show_shortcode['[name]']; 直接执行
PHP 学习笔记 (四)的更多相关文章
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- java之jvm学习笔记四(安全管理器)
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(四) indigo devices
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Typescript 学习笔记四:回忆ES5 中的类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- ES6学习笔记<四> default、rest、Multi-line Strings
default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...
- muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制
目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...
- python3.4学习笔记(四) 3.x和2.x的区别,持续更新
python3.4学习笔记(四) 3.x和2.x的区别 在2.x中:print html,3.x中必须改成:print(html) import urllib2ImportError: No modu ...
- Go语言学习笔记四: 运算符
Go语言学习笔记四: 运算符 这章知识好无聊呀,本来想跨过去,但没准有初学者要学,还是写写吧. 运算符种类 与你预期的一样,Go的特点就是啥都有,爱用哪个用哪个,所以市面上的运算符基本都有. 算术运算 ...
- 零拷贝详解 Java NIO学习笔记四(零拷贝详解)
转 https://blog.csdn.net/u013096088/article/details/79122671 Java NIO学习笔记四(零拷贝详解) 2018年01月21日 20:20:5 ...
随机推荐
- Web---演示servlet技术(servlet生命周期),解决中文乱码问题
本节讲解决中文乱码问题的4种方法. 还有更好的方法,也就是用过滤器,这里就不演示了,博主目前也不会~呼♪(^∇^*)~过段时间才会学. servlet生命周期演示: index.jsp: <%@ ...
- 图片上传unexpected end of stream
第二次上传头像图片的时候出现 unexpected end of stream 解决办法: 将第一次图片上传成功后做以下操作即可: mBitmapFile.delete(); mBitmapFile ...
- 实用的Android代码片段集合(精)
1.精确获取屏幕尺寸(例如:3.5.4.0.5.0寸屏幕) public static double getScreenPhysicalSize(Activity ctx) { DisplayMetr ...
- ios开发所有的iCON 的大小
新浪微博: 16x16png,80x80png,120x120png qq开放平台: 16*16png 20k以内 512*512jpg或者png 200以内 微信开放平台: 28x28 png,10 ...
- 20169210《Linux内核原理与分析》第九周作业
第一部分:实验 首先还是网易云课堂的学习,这次的课程是可执行程序的装载. 预处理.编译和链接: 可执行程序是怎么来的 以c语言代码为例的话,经过预处理,编译成汇编代码,再汇编成目标码再链接可执行文件. ...
- DataGridView减少闪烁的解决办法
Reducing flicker, blinking in DataGridView http://www.codeproject.com/Tips/390496/Reducing-flicker-b ...
- [TypeScript] Configuring TypeScript Which Files to Compile with "Files" and "OutDir"
This lesson shows how to configure the .tsconfig so you only compile the .ts files you want. It then ...
- [rxjs] Demystifying Cold and Hot Observables in RxJS
Cold: console.clear(); var Observable = Rx.Observable; var clock = Observable.interval(1000).take(10 ...
- careercup-栈与队列 3.1
3.1 描述如何只用一个数组来实现三个栈. 解答 我们可以很容易地用一个数组来实现一个栈,压栈就往数组里插入值,栈顶指针加1: 出栈就直接将栈顶指针减1:取栈顶值就把栈顶指针指向的单元的值返回: 判断 ...
- Day01 - Python 基础介绍
1 Python 简介 1.1 Python 的由来 Python的创始人:吉多·范罗苏姆(Guido van Rossum) 1989年,吉多·范罗苏姆为了在阿姆斯特丹打发圣诞节假期时间,开发的一个 ...