详解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 相关文章推荐
PHP中“简单工厂模式”实例代码讲解
Sep 04 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 PHP
使用php批量删除数据库下所有前缀为prefix_的表
Jun 09 PHP
详解PHP中的Traits
Jul 29 PHP
php检查页面是否被百度收录
Oct 28 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
Dec 29 PHP
PHP PDOStatement::fetch讲解
Jan 31 PHP
在laravel框架中实现封装公共方法全局调用
Oct 14 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
Oct 21 PHP
浅谈laravel orm 中的一对多关系 hasMany
Oct 21 PHP
Laravel5.1 框架响应基本用法实例分析
Jan 04 PHP
php实例化对象的实例方法
Nov 17 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
获取URL文件名后缀
2013/10/24 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
JavaScript高级程序设计 读书笔记之九 本地对象Array
2012/02/27 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
2013/11/21 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
js触发select onchange事件的小技巧
2014/08/05 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
2016/07/22 Javascript
Bootstrap 3 按钮标签实例代码
2017/02/21 Javascript
详解使用路由延迟加载 Angular 模块
2017/10/12 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
JS闭包原理及其使用场景解析
2020/12/03 Javascript
[12:51]71泪洒现场!是DOTA2让经典重现
2014/03/24 DOTA
在Python的循环体中使用else语句的方法
2015/03/30 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
Python实现购物车程序
2018/04/16 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
2018/05/26 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
python爬取个性签名的方法
2018/06/17 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
Django中的AutoField字段使用
2020/05/18 Python
英国在线花园中心:You Garden
2018/06/03 全球购物
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
Final类有什么特点
2012/04/25 面试题
畜牧兽医本科生的自我评价
2014/03/03 职场文书
大跃进口号
2014/06/16 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
创业计划书之冷饮店
2019/09/27 职场文书
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis