详解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分页示例代码
Mar 19 PHP
解析php时间戳与日期的转换
Jun 06 PHP
PHP操作MongoDB GridFS 存储文件的详解
Jun 20 PHP
php switch语句多个值匹配同一代码块的实现
Mar 03 PHP
php实现获取及设置用户访问页面语言类
Sep 24 PHP
PHP实现根据银行卡号判断银行
Apr 29 PHP
php生成唯一数字id的方法汇总
Nov 18 PHP
php实现将base64格式图片保存在指定目录的方法
Oct 13 PHP
PHP hex2bin()函数用法讲解
Feb 25 PHP
在Laravel5中正确设置文件权限的方法
May 22 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
Dec 02 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
Jan 26 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 线程安全与非线程安全版本的区别深入解析
2013/08/06 PHP
php使用explode()函数将字符串拆分成数组的方法
2015/02/17 PHP
php使用crypt()函数进行加密
2017/06/08 PHP
JavaScript 模仿vbs中的 DateAdd() 函数的代码
2007/08/13 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
2015/03/03 Javascript
JavaScript实现的简单拖拽效果
2015/06/01 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
vue集成kindeditor富文本的实现示例代码
2019/06/07 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
vue实现计步器功能
2019/11/01 Javascript
vue+Element-ui前端实现分页效果
2020/11/15 Javascript
[08:44]和酒神一起战斗 DOTA2教你做大人
2014/03/27 DOTA
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
Django forms表单 select下拉框的传值实例
2019/07/19 Python
python能自学吗
2020/06/18 Python
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
 Alo Yoga官网:购买瑜伽服装
2018/06/17 全球购物
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
生产总经理岗位职责
2013/12/19 职场文书
爱国主义教育活动总结
2014/05/07 职场文书
英语三分钟演讲稿
2014/08/19 职场文书
领导班子三严三实对照检查材料
2014/09/25 职场文书
2015年度优秀员工获奖感言
2015/07/31 职场文书
2019年教师入党申请书
2019/06/27 职场文书
Python代码风格与编程习惯重要吗?
2021/06/03 Python
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫