详解WordPress中创建和添加过滤器的相关PHP函数


Posted in PHP onDecember 29, 2015

apply_filters()(创建过滤器)
apply_filters() 函数用来创建一个过滤器,大多数被用在函数中,是 WordPress 插件机制中非常重要的一个函数,能让其它的主题和插件对一个值进行修改过滤。

用法

apply_filters( $tag, $value, $var... );

参数

$tag

(字符串)(必须)过滤器的名字。

默认值:None

$value

(混合)(必须)要过滤的值,如果没人过滤则直接返回这个值。

$var

(混合) (可选)传给过滤函数额外的变量参数,辅助过滤函数对返回值进行操作,可以添加无限个。

返回值

(混合)过滤后的值,如果没人过滤则直接返回 $value 的值。

例子

没人过滤:

echo apply_filters( 'test', '可以被修改的值' );

打印结果:

可以被修改的值

有人过滤:

function test_func(){
  return '修改值';
}
add_filter( 'test', 'test_func' );
echo apply_filters( 'test', '可以被修改的值' );

打印结果:

修改值

接收参数:

function test_func(){
  return '修改值';
}
add_filter( 'test', 'test_func' );
function test_func2( $text ){
  return $text . '2';
}
add_filter( 'test', 'test_func2' );
echo apply_filters( 'test', '可以被修改的值' );

多个参数:

function test_func( $text, $var, $var2 ){
  return '修改值' . $var1 . $var2;
}
add_action( 'test', 'test_func', 10, 3 );
echo apply_filters( 'test', '可以被修改的值', '辅助值1', '辅助值2' );

其它

此函数位于:wp-includes/plugin.php

add_filter()(添加过滤器)
add_filter() 可以挂载一个函数到指定的过滤器上。

用法

add_filter( $tag, $function_to_add, $priority, $accepted_args );

参数

$tag

(字符串)(必须)所挂载的过滤器名字(和目标 apply_filters() 函数的 $tag 属性一样)。

默认值:None

$function_to_add

(回调)(必须)要挂载的回调函数,参考 PHP 回调函数类型文档。

默认值:None

$priority

(整数)(可选)执行顺序,越小函数越先被执行。

默认值:10

$accepted_args

(整数)(可选)回调函数接收的参数数量,设置多个可以接收更多 apply_filters() 函数传进来的参数。

默认值:1

返回值

(布尔)总是 True

例子

function test_func( $text, $var1, $var2 ){
  return $text . $var1 . $var2;
}
add_action( 'test', 'test_func', 10, 3 );
echo apply_filters( 'test', '参数2', '参数3', '参数4' );

打印:

test参数2参数3

其它

该函数位于:wp-includes/plugin.php

PHP 相关文章推荐
openPNE常用方法分享
Nov 29 PHP
基于header的一些常用指令详解
Jun 06 PHP
浅谈php安全性需要注意的几点事项
Jul 17 PHP
phpword插件导出word文件时中文乱码问题处理方案
Aug 19 PHP
新浪SAE搭建PHP项目教程
Jan 28 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
Mar 06 PHP
nginx下安装php7+php5
Jul 31 PHP
PHP PDOStatement::setAttribute讲解
Feb 01 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
Oct 10 PHP
使用laravel根据用户类型来显示或隐藏字段
Oct 17 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
Feb 28 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
Apr 05 PHP
yii,CI,yaf框架+smarty模板使用方法
Dec 29 #PHP
WordPress中自定义后台管理界面配色方案的小技巧
Dec 29 #PHP
在WordPress中实现发送http请求的相关函数解析
Dec 29 #PHP
在WordPress的文章编辑器中设置默认内容的方法
Dec 29 #PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
Dec 29 #PHP
Yii使用技巧大汇总
Dec 29 #PHP
PHP实现批量上传单个文件
Dec 29 #PHP
You might like
菜鸟修复电子管记
2021/03/02 无线电
最令PHP初学者们头痛的十四个问题
2007/01/15 PHP
浅谈PHP 闭包特性在实际应用中的问题
2009/10/30 PHP
使用cookie实现统计访问者登陆次数
2013/06/08 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
js的逻辑运算符 ||
2010/05/31 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
微信小程序 欢迎界面开发的实例详解
2016/11/30 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
js数组与字符串常用方法总结
2017/01/13 Javascript
BACKBONE.JS 简单入门范例
2017/10/17 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
Python 命令行参数sys.argv
2008/09/06 Python
python元组的概念知识点
2019/11/19 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
基于HTML5+CSS3实现简单的时钟效果
2017/09/11 HTML / CSS
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
彪马法国官网:PUMA法国
2019/12/15 全球购物
毕业生自荐材料范文
2014/12/30 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
教师教育心得体会
2016/01/19 职场文书
Pandas加速代码之避免使用for循环
2021/05/30 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python
Python面向对象之内置函数相关知识总结
2021/06/24 Python
elasticSearch-api的具体操作步骤讲解
2021/06/28 Java/Android
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏
解决spring.thymeleaf.cache=false不起作用的问题
2022/06/10 Java/Android