详解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 批量更新网页内容实现代码
Jan 05 PHP
php设计模式 Chain Of Responsibility (职责链模式)
Jun 26 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
Jun 20 PHP
win7计划任务定时执行PHP脚本设置图解
May 09 PHP
php读取远程gzip压缩网页的方法
Dec 29 PHP
php实现将字符串按照指定距离进行分割的方法
Mar 14 PHP
php读取torrent种子文件内容的方法(测试可用)
May 03 PHP
php注册和登录界面的实现案例(推荐)
Oct 24 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 PHP
PHP使用递归算法无限遍历数组示例
Jan 13 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
php+ajax 文件上传代码实例
Mar 18 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 管理系统程序中的后门
2009/08/05 PHP
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
PHP使用redis消息队列发布微博的方法示例
2017/06/22 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
jQuery登陆判断简单实现代码
2013/04/21 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
javascript图片延迟加载实现方法及思路
2015/12/31 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
JS上传图片预览插件制作(兼容到IE6)
2016/08/07 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
微信小程序 开发MAP(地图)实例详解
2017/06/27 Javascript
layui扩展上传组件模拟进度条的方法
2019/09/23 Javascript
JavaScript实现京东放大镜效果
2019/12/03 Javascript
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
RxJS在TypeScript中的简单使用详解
2020/04/13 Javascript
vue 实现setInterval 创建和销毁实例
2020/07/21 Javascript
vue中touch和click共存的解决方式
2020/07/28 Javascript
vue+Element-ui前端实现分页效果
2020/11/15 Javascript
JS获取一个字符串中指定字符串第n次出现的位置
2021/02/10 Javascript
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
python实现求特征选择的信息增益
2018/12/18 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
采购部岗位职责
2013/11/24 职场文书
终止合同协议书
2014/04/17 职场文书
学校做一个有道德的人活动方案
2014/08/23 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
筑梦中国心得体会
2016/01/18 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL
MySQL创建管理HASH分区
2022/04/13 MySQL