详解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 09 PHP
使用php4加速网络传输
Oct 09 PHP
收集的PHP中与数组相关的函数
Mar 22 PHP
PHP中的函数嵌套层数限制分析
Jun 13 PHP
10款实用的PHP开源工具
Oct 23 PHP
PHP MVC框架路由学习笔记
Mar 02 PHP
Smarty变量用法详解
May 11 PHP
PHP面向对象程序设计组合模式与装饰模式详解
Dec 02 PHP
thinkphp 手机号和用户名同时登录
Jan 20 PHP
laravel 框架执行流程与原理简单分析
Feb 01 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
Mar 23 PHP
PHP xpath提取网页数据内容代码解析
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
php学习笔记 php中面向对象三大特性之一[封装性]的应用
2011/06/13 PHP
php 注册时输入信息验证器的实现详解
2013/07/05 PHP
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
PHP mysql事务问题实例分析
2016/01/18 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
2015/02/13 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
javascript实现Email邮件显示与删除功能
2015/11/21 Javascript
Position属性之relative用法
2015/12/14 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
webpack踩坑之路图片的路径与打包
2017/09/05 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
在Python中使用swapCase()方法转换大小写的教程
2015/05/20 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
Python IDLE清空窗口的实例
2018/06/25 Python
使用python对多个txt文件中的数据进行筛选的方法
2019/07/10 Python
python实现用户名密码校验
2020/03/18 Python
使用分层画布来优化HTML5渲染的教程
2015/05/08 HTML / CSS
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
护士实习鉴定范文
2013/12/22 职场文书
触摸春天教学反思
2014/02/03 职场文书
英语专业自荐书
2014/06/13 职场文书
2014年餐厅服务员工作总结
2014/11/18 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
员工工作能力评语
2014/12/31 职场文书
高中数学课堂教学反思
2016/02/18 职场文书
nginx location中多个if里面proxy_pass的方法
2021/03/31 Servers
一篇文章带你了解Python和Java的正则表达式对比
2021/09/15 Python
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫