详解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 UTF8编码内的繁简转换类
Jul 20 PHP
PHP执行linux系统命令的常用函数使用说明
Apr 27 PHP
php GeoIP的使用教程
Mar 09 PHP
PHP 使用pcntl和libevent 实现Timer功能
Oct 27 PHP
PHPAnalysis中文分词类详解
Jun 13 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
Oct 23 PHP
Thinkphp中数据按分类嵌套循环实现方法
Oct 30 PHP
php检测apache mod_rewrite模块是否安装的方法
Mar 14 PHP
你不知道的文件上传漏洞php代码分析
Sep 29 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
Mar 15 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
Apr 27 PHP
laravel admin实现分类树/模型树的示例代码
Jun 10 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
缅甸的咖啡简史
2021/03/04 咖啡文化
PHP Session变量不能传送到下一页的解决方法
2009/11/27 PHP
php读取csc文件并输出
2015/05/21 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
Mootools 1.2教程 定时器和哈希简介
2009/09/15 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
JavaScript设计模式之抽象工厂模式介绍
2014/12/28 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
javascript如何创建对象
2016/08/29 Javascript
Javascript typeof与instanceof的区别
2016/10/18 Javascript
基于jQuery的checkbox全选问题分析
2016/11/18 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
node.js遍历目录的方法示例
2018/08/01 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
JavaScript中.min.js和.js文件的区别讲解
2019/02/13 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
js最全的数组的降维5种办法(小结)
2020/04/28 Javascript
Python中atexit模块的基本使用示例
2015/07/08 Python
Python中static相关知识小结
2018/01/02 Python
Python多进程fork()函数详解
2019/02/22 Python
使用Python将Mysql的查询数据导出到文件的方法
2019/02/25 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
CAT鞋美国官网:CAT Footwear
2017/11/27 全球购物
国庆节文艺活动方案
2014/02/03 职场文书
房屋委托书范本
2014/04/04 职场文书
垃圾分类的活动方案
2014/08/15 职场文书
师德先进个人事迹材料
2014/12/19 职场文书
建筑工程催款函
2015/06/24 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL