详解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 相关文章推荐
经典的PHPer为什么被认为是草根?
Apr 02 PHP
PHP远程连接MYSQL数据库非常慢的解决方法
Jul 05 PHP
PHP+MYSQL 出现乱码的解决方法
Aug 08 PHP
phpMyAdmin 安装配置方法和问题解决
Jun 08 PHP
PHP XML操作的各种方法解析(比较详细)
Jun 17 PHP
Linux下手动编译安装PHP扩展的例子分享
Jul 15 PHP
PHP线程的内存回收问题
Jul 08 PHP
PHP自定义函数获取汉字首字母的方法
Dec 01 PHP
php实现数组重复数字统计实例
Sep 30 PHP
浅谈PHP各环境下的伪静态配置
Mar 13 PHP
thinkphp框架使用JWTtoken的方法详解
Oct 10 PHP
laravel 解决多库下的DB::transaction()事务失效问题
Oct 21 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
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
PHP实现百度人脸识别
2019/05/06 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
javascript 文档的编码问题解决
2009/03/01 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
Jquery 的outerHeight方法使用介绍
2013/09/11 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
jquery验证邮箱格式并显示提交按钮
2015/11/07 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
jQuery.form.js的使用详解
2017/06/14 jQuery
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
2018/10/10 Javascript
vuejs+element UI点击编辑表格某一行时获取内容填入表单的示例
2018/10/31 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
python计算对角线有理函数插值的方法
2015/05/07 Python
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
python实现人脸签到系统
2020/04/13 Python
Python实现寻找回文数字过程解析
2020/06/09 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
celery在python爬虫中定时操作实例讲解
2020/11/27 Python
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
html5使用window.postMessage进行跨域实现数据交互的一次实战
2021/02/24 HTML / CSS
美国益智玩具购物网站:Fat Brain Toys
2017/11/03 全球购物
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
生物制药毕业生自荐信
2013/10/16 职场文书
2014年健康教育实施方案
2014/02/17 职场文书
犯错检讨书
2014/02/21 职场文书
安全生产计划书
2014/05/04 职场文书
申请吧主发表的感言
2015/08/03 职场文书
信息技术研修心得体会
2016/01/08 职场文书
党员干部学习心得体会
2016/01/23 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书
JS数组的常用方法整理
2021/03/31 Javascript