详解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 相关文章推荐
function.inc.php超越php
Dec 09 PHP
Discuz 5.0 中读取纯真IP数据库函数分析
Mar 16 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
May 07 PHP
php多用户读写文件冲突的解决办法
Nov 06 PHP
ThinkPHP字符串函数及常用函数汇总
Jul 18 PHP
PHP常用正则表达式集锦
Aug 17 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
Feb 12 PHP
php生成固定长度纯数字编码的方法
Jul 09 PHP
PHP实现数据分页显示的简单实例
May 26 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
Apr 26 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 PHP
关于Laravel参数验证的一些疑与惑
Nov 19 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
扩展你的 PHP 之入门篇
2006/12/04 PHP
php中memcache 基本操作实例
2015/05/17 PHP
PHP+JS实现大规模数据提交的方法
2015/07/02 PHP
php获取远程文件的内容和大小
2015/11/03 PHP
PHP多进程简单实例小结
2019/11/09 PHP
IE与FireFox中的childNodes区别
2011/10/20 Javascript
JS获取计算机mac地址以及IP的实现方法
2014/01/08 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
2018/04/18 jQuery
python 从远程服务器下载日志文件的程序
2013/02/10 Python
用Python编写一个国际象棋AI程序
2014/11/28 Python
python中 logging的使用详解
2017/10/25 Python
python实现自动发送邮件
2018/06/20 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
Django框架自定义模型管理器与元选项用法分析
2019/07/22 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
基于TensorFlow中自定义梯度的2种方式
2020/02/04 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
简单的命令查看安装的python版本号
2020/08/28 Python
CSS3中animation实现流光按钮效果
2020/12/21 HTML / CSS
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
波兰购物网站:MALL.PL
2019/05/01 全球购物
文明教师事迹材料
2014/01/16 职场文书
cf搞笑广告词
2014/03/14 职场文书
金融系毕业生自荐书
2014/07/08 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
2014年法务工作总结
2014/12/11 职场文书
给病人的慰问信
2015/03/23 职场文书
2016大学生社会实践单位评语
2015/12/01 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
Nginx缓存设置案例详解
2021/09/15 Servers
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android