찾다
백엔드 개발PHP 튜토리얼PHP 学习笔记 (4)

PHP 学习笔记 (四)

Wordpress 框架中的一些函数:

wp_get_nav_menu($default): 根据条件$default 获取menu, 默认获取所有的menu

其中 $default 默认如下所示:

<span style="color: #800080;">$default</span> = <span style="color: #0000ff;">array</span><span style="color: #000000;">(  ‘theme_location’ </span>=>'',  'menu' =>'',  'container' =>'div',  'container_class' => 'menu-{menu_slug}-container',  'container_id' =>'',  'menu_class'=>'menu',  'echo' => <span style="color: #0000ff;">true</span>,  'fallback_cb'=>'wp_page_menu',  'before' =>'',  'after' =>'',  'link_before' =>'',  'link_after' =>'',  'items_wrap' =>'
    %3$s
, '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]']; 直接执行

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
华为GT3 Pro和GT4的差异是什么?华为GT3 Pro和GT4的差异是什么?Dec 29, 2023 pm 02:27 PM

许多用户在选择智能手表的时候都会选择的华为的品牌,其中华为GT3pro和GT4都是非常热门的选择,不少用户都很好奇华为GT3pro和GT4有什么区别,下面就就给大家介绍一下二者。华为GT3pro和GT4有什么区别一、外观GT4:46mm和41mm,材质是玻璃表镜+不锈钢机身+高分纤维后壳。GT3pro:46.6mm和42.9mm,材质是蓝宝石玻璃表镜+钛金属机身/陶瓷机身+陶瓷后壳二、健康GT4:采用最新的华为Truseen5.5+算法,结果会更加的精准。GT3pro:多了ECG心电图和血管及安

Python中的class类和method方法的使用方法Python中的class类和method方法的使用方法Apr 21, 2023 pm 02:28 PM

类和方法的概念和实例类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。方法:类中定义的函数。类的构造方法__init__():类有一个名为init()的特殊方法(构造方法),该方法在类实例化时会自动调用。实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用self修饰的变量。实例化:创建一个类的实例,类的具体对象。继承:即一个派生类(derivedclass)继承基类(baseclass)的

修复:截图工具在 Windows 11 中不起作用修复:截图工具在 Windows 11 中不起作用Aug 24, 2023 am 09:48 AM

为什么截图工具在Windows11上不起作用了解问题的根本原因有助于找到正确的解决方案。以下是截图工具可能无法正常工作的主要原因:对焦助手已打开:这可以防止截图工具打开。应用程序损坏:如果截图工具在启动时崩溃,则可能已损坏。过时的图形驱动程序:不兼容的驱动程序可能会干扰截图工具。来自其他应用程序的干扰:其他正在运行的应用程序可能与截图工具冲突。证书已过期:升级过程中的错误可能会导致此issu简单的解决方案这些适合大多数用户,不需要任何特殊的技术知识。1.更新窗口和Microsoft应用商店应用程

使用jQuery替换元素的class名称使用jQuery替换元素的class名称Feb 24, 2024 pm 11:03 PM

jQuery是一种经典的JavaScript库,被广泛应用于网页开发中,它简化了在网页上处理事件、操作DOM元素和执行动画等操作。在使用jQuery时,经常会遇到需要替换元素的class名的情况,本文将介绍一些实用的方法,以及具体的代码示例。1.使用removeClass()和addClass()方法jQuery提供了removeClass()方法用于删除

如何修复无法连接到iPhone上的App Store错误如何修复无法连接到iPhone上的App Store错误Jul 29, 2023 am 08:22 AM

第1部分:初始故障排除步骤检查苹果的系统状态:在深入研究复杂的解决方案之前,让我们从基础知识开始。问题可能不在于您的设备;苹果的服务器可能会关闭。访问Apple的系统状态页面,查看AppStore是否正常工作。如果有问题,您所能做的就是等待Apple修复它。检查您的互联网连接:确保您拥有稳定的互联网连接,因为“无法连接到AppStore”问题有时可归因于连接不良。尝试在Wi-Fi和移动数据之间切换或重置网络设置(“常规”>“重置”>“重置网络设置”>设置)。更新您的iOS版本:

python中class是什么意思python中class是什么意思May 21, 2019 pm 05:10 PM

class是python中的一个关键字,用来定义一个类,定义类的方法:class后面加一个空格然后加类名;类名规则:首字母大写,如果多个单词用驼峰命名法,如【class Dog()】。

SpringBoot怎么通过自定义classloader加密保护class文件SpringBoot怎么通过自定义classloader加密保护class文件May 11, 2023 pm 09:07 PM

背景最近针对公司框架进行关键业务代码进行加密处理,防止通过jd-gui等反编译工具能够轻松还原工程代码,相关混淆方案配置使用比较复杂且针对springboot项目问题较多,所以针对class文件加密再通过自定义的classloder进行解密加载,此方案并不是绝对安全,只是加大反编译的困难程度,防君子不防小人,整体加密保护流程图如下图所示maven插件加密使用自定义maven插件对编译后指定的class文件进行加密,加密后的class文件拷贝到指定路径,这里是保存到resource/corecla

PHP Class用法详解:让你的代码更清晰易读PHP Class用法详解:让你的代码更清晰易读Mar 10, 2024 pm 12:03 PM

在编写PHP代码时,使用类(Class)是一个非常常见的做法。通过使用类,我们可以将相关的功能和数据封装在一个单独的单元中,使代码更加清晰、易读和易维护。本文将详细介绍PHPClass的用法,并提供具体的代码示例,帮助读者更好地理解如何在实际项目中应用类来优化代码。1.创建和使用类在PHP中,可以使用关键字class来定义一个类,并在类中定义属性和方法。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)