详解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执行linux系统命令的常用函数使用说明
Apr 27 PHP
PHP多线程抓取网页实现代码
Jul 22 PHP
PHP的基本常识小结
Jul 05 PHP
2个Codeigniter文件批量上传控制器写法例子
Jul 25 PHP
php生成年月日下载列表的方法
Apr 24 PHP
php抽象类用法实例分析
Jul 07 PHP
WordPress中的shortcode短代码功能使用详解
May 17 PHP
Yii2 rbac权限控制之rule教程详解
Jun 23 PHP
PHP7 新特性详细介绍
Sep 06 PHP
PHP crc32()函数讲解
Feb 14 PHP
Thinkphp5.0框架视图view的循环标签用法示例
Oct 12 PHP
深入分析PHP设计模式
Jun 15 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 setcookie指定domain参数后,在IE下设置cookie失效的解决方法
2011/09/09 PHP
PHP学习笔记之字符串编码的转换和判断
2014/05/22 PHP
php通过function_exists检测函数是否存在的方法
2015/03/18 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
25个非常棒的jQuery滑块插件和教程小结
2011/09/02 Javascript
IE与FireFox中的childNodes区别
2011/10/20 Javascript
json原理分析及实例介绍
2012/11/29 Javascript
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
JS实现文件动态顺序载入的方法
2015/03/07 Javascript
基于jQuery实现select下拉选择可输入附源码下载
2016/02/03 Javascript
深入浅析JS的数组遍历方法(推荐)
2016/06/15 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
原生js二级联动效果
2017/06/20 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
Angularjs cookie 操作实例详解
2017/09/27 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
JS document文档的简单操作完整示例
2020/01/13 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
ES6字符串的扩展实例
2020/12/21 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
Python strip lstrip rstrip使用方法
2008/09/06 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
python实现电脑自动关机
2018/06/20 Python
Python3.6实现带有简单界面的有道翻译小程序
2019/04/16 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
Pytest框架之fixture的详细使用教程
2020/04/07 Python
Python虚拟环境venv用法详解
2020/05/25 Python
tensorflow下的图片标准化函数per_image_standardization用法
2020/06/30 Python
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
土建工程师岗位职责
2014/06/10 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
HTML基本元素标签介绍
2022/02/28 HTML / CSS