详解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教程 变量定义
Oct 23 PHP
php中设置多级目录session的问题
Aug 08 PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
Oct 24 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
Feb 14 PHP
php接口和抽象类使用示例详解
Mar 02 PHP
php以post形式发送xml的方法
Nov 04 PHP
使用Composer安装Yii框架的方法
Mar 15 PHP
PHPExcel笔记, mpdf导出
May 03 PHP
PHP实现的方程求解示例分析
Nov 11 PHP
微信开发之php表单微信中自动提交两次问题解决办法
Jan 08 PHP
Django 中 cookie的使用
Aug 17 PHP
laravel 实现用户登录注销并限制功能
Oct 24 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 array的学习笔记
2012/05/16 PHP
使用PHP实现Mysql读写分离
2013/06/28 PHP
laravel多条件查询方法(and,or嵌套查询)
2019/10/09 PHP
js利用Array.splice实现Array的insert/remove
2009/01/13 Javascript
JavaScript 学习笔记(十三)Dom创建表格
2010/01/21 Javascript
基于JQuery的多标签实现代码
2012/09/19 Javascript
减少访问DOM的次数提升javascript性能
2014/02/24 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
javascript实现动态表头及表列的展现方法
2015/07/14 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
深入理解JS DOM事件机制
2016/08/06 Javascript
Vue.js 和 MVVM 的注意事项
2016/11/07 Javascript
JavaScript数据结构链表知识详解
2016/11/21 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
使用 Node.js 实现图片的动态裁切及算法实例代码详解
2018/09/29 Javascript
Vue中的vue-resource示例详解
2018/11/02 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
原生js+css调节音量滑块
2020/01/15 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
微信小程序实现时间戳格式转换
2020/07/20 Javascript
[03:55]DOTA2完美大师赛选手传记——LFY.MONET
2017/11/18 DOTA
[42:20]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
浅谈Python中eval的强大与危害
2019/03/13 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
解决Keras 中加入lambda层无法正常载入模型问题
2020/06/16 Python
赫里福德的一家乡村零售商店:Philip Morris & Son
2017/06/25 全球购物
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
在线实验室测试:HealthLabs.com
2020/05/03 全球购物
中年人生感言
2014/02/04 职场文书
本科毕业生求职自荐信
2014/04/09 职场文书
机电一体化专业求职信
2014/07/22 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
三孔导游词
2015/02/05 职场文书