详解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 相关文章推荐
用Flash图形化数据(二)
Oct 09 PHP
phpmyadmin 常用选项设置详解版
Mar 07 PHP
163的邮件用phpmailer发送(实例详解)
Jun 24 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
Mar 18 PHP
PHP生成器简单实例
May 13 PHP
PHP 常用的header头部定义汇总
Jun 19 PHP
PHP实现补齐关闭的HTML标签
Mar 22 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 PHP
分享5个非常有用的Laravel Blade指令
May 30 PHP
在 Laravel 中动态隐藏 API 字段的方法
Oct 25 PHP
如何在PHP环境中使用ProtoBuf数据格式
Jun 19 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 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
CentOS 6.3下安装PHP xcache扩展模块笔记
2014/09/10 PHP
php读取远程gzip压缩网页的方法
2014/12/29 PHP
PHP文件缓存类实现代码
2015/10/26 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
jQuery选择器源码解读(二):select方法
2015/03/31 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
原生JS实现层叠轮播图
2017/05/17 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
react中实现搜索结果中关键词高亮显示
2018/07/31 Javascript
jQuery实现消息弹出框效果
2019/12/10 jQuery
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
[02:08]什么藏在DOTA2 TI9“小紫本”里?斧王历险记告诉你!
2019/05/17 DOTA
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
windows下python连接oracle数据库
2017/06/07 Python
Python AES加密实例解析
2018/01/18 Python
Python unittest单元测试框架总结
2018/09/08 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
python生成器与迭代器详解
2019/01/01 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
html5移动端价格输入键盘的实现
2019/09/16 HTML / CSS
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
Java语言的优势
2015/01/10 面试题
学术会议邀请函
2015/01/30 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书
导游词之广州陈家祠
2019/10/21 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL