详解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 相关文章推荐
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
Oct 09 PHP
php magic_quotes_gpc的一点认识与分析
Aug 18 PHP
PHP MSSQL 存储过程的方法
Dec 24 PHP
PHP 学习路线与时间表
Feb 21 PHP
简单的php数据库操作类代码(增,删,改,查)
Apr 08 PHP
PHP中鲜为人知的10个函数
Feb 28 PHP
2个比较经典的PHP加密解密函数分享
Jul 01 PHP
ThinkPHP在新浪SAE平台的部署实例
Oct 31 PHP
php中JSON的使用方法
Apr 30 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
Nov 05 PHP
PHP实现的激活用户注册验证邮箱功能示例
Jun 06 PHP
PHP程序守护进程化实现方法详解
Jul 16 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
抓取并下载CSS中所有图片文件的php代码
2011/09/26 PHP
基于PHP CURL用法的深入分析
2013/06/09 PHP
php的常量和变量实例详解
2017/06/27 PHP
js onload处理html页面加载之后的事件
2013/10/30 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
js实现3D图片展示效果
2017/03/09 Javascript
ES6下React组件的写法示例代码
2017/05/04 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
用原生JS实现简单的多选框功能
2017/06/12 Javascript
JS实现简单表格排序操作示例
2017/10/07 Javascript
mpvue跳转页面及注意事项
2018/08/03 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
vue中组件通信的八种方式(值得收藏!)
2019/08/09 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
[02:21]2018完美盛典章节片——初心
2018/12/17 DOTA
python定时器使用示例分享
2014/02/16 Python
Python中对象的引用与复制代码示例
2017/12/04 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
深度辨析Python的eval()与exec()的方法
2019/03/26 Python
python创建ArcGIS shape文件的实现
2019/12/06 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
Html5上传图片 移动端、PC端通用代码
2016/06/08 HTML / CSS
阿迪达斯香港官网:adidas香港
2019/11/09 全球购物
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
幼儿教师考核制度
2014/01/25 职场文书
加拿大探亲邀请信
2014/01/28 职场文书
玲玲的画教学反思
2014/02/04 职场文书
人力资源管理毕业求职信
2014/08/05 职场文书
南湾猴岛导游词
2015/02/09 职场文书
诚信教育主题班会
2015/08/13 职场文书
mysql 生成连续日期及变量赋值
2022/03/20 MySQL