详解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
PHP数组内存耗用太多问题的解决方法
Apr 05 PHP
php去除重复字的实现代码
Sep 16 PHP
php教程 插件机制在PHP中实现方案
Nov 02 PHP
PHP编程中的常见漏洞和代码实例
Aug 06 PHP
什么情况下可以不写PHP的闭合标签“?>”
Aug 28 PHP
php中使用PHPExcel读写excel(xls)文件的方法
Sep 15 PHP
总结PHP中DateTime的常用方法
Aug 11 PHP
php自定义函数转换html标签示例
Sep 29 PHP
PHP实现的获取文件mimes类型工具类示例
Apr 08 PHP
Laravel timestamps 设置为unix时间戳的方法
Oct 11 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 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
为IP查询添加GOOGLE地图功能的代码
2010/08/08 PHP
php代码收集表单内容并写入文件的代码
2012/01/29 PHP
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
Jquery+WebService 校验账号是否已被注册的代码
2010/07/12 Javascript
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
2014/05/12 Javascript
为何JS操作的href都是javascript:void(0);呢
2015/11/12 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
简单的JS控制button颜色随点击更改的实现方法
2017/04/17 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
JavaScript将数组转换为链表的方法
2020/02/16 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
python获取文件扩展名的方法
2015/07/06 Python
Django的分页器实例(paginator)
2017/12/01 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
python中logging包的使用总结
2018/02/28 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
简单了解python的内存管理机制
2019/07/08 Python
Python编程实现tail-n查看日志文件的方法
2019/07/08 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
Python自带的IDE在哪里
2020/07/01 Python
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
主要的Ajax框架都有什么
2013/11/14 面试题
Java程序员综合测试题
2014/04/25 面试题
幼儿园奖惩制度范本
2015/08/05 职场文书
python 远程执行命令的详细代码
2022/02/15 Python
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android