详解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 相关文章推荐
vBulletin HACK----关于排版的两个HACK
Oct 09 PHP
php中模拟POST传递数据的两种方法分享
Sep 16 PHP
php curl post 时出现的问题解决
Jan 30 PHP
浅谈PHP调用Webservice思路及源码分享
Jun 04 PHP
PHP结合JQueryJcrop实现图片裁切实例详解
Jul 24 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
Dec 25 PHP
php静态文件返回304技巧分享
Jan 06 PHP
php解析base64数据生成图片的方法
Dec 06 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
PHP运用foreach神奇的转换数组(实例讲解)
Feb 01 PHP
php微信开发之图片回复功能
Jun 14 PHP
如何在Laravel5.8中正确地应用Repository设计模式
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
如何在PHP程序中防止盗链
2008/04/09 PHP
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
yii操作cookie实例简介
2014/07/09 PHP
destoon实现调用热门关键字的方法
2014/07/15 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
2015/12/17 PHP
php 使用fopen函数创建、打开文件详解及实例代码
2016/09/24 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
PHP命名空间用法实例分析
2019/09/04 PHP
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
一些实用的jQuery代码片段收集
2011/07/12 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
2014 年最热门的21款JavaScript框架推荐
2014/12/25 Javascript
如何在Linux上安装Node.js
2016/04/01 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
AngularJS入门教程之XHR和依赖注入详解
2016/08/18 Javascript
纯JS实现轮播图
2017/02/22 Javascript
详解node中创建服务进程
2017/05/09 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
2017/11/09 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
layui table复选框禁止某几条勾选的实例
2019/09/20 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
[01:46]辉夜杯—打造中国DOTA新格局
2015/12/25 DOTA
Python将阿拉伯数字转换为罗马数字的方法
2015/07/10 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
Python3将ipa包中的文件按大小排序
2020/04/17 Python
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
图书馆标语
2014/06/19 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
冰雪公主观后感
2015/06/16 职场文书
详细介绍MySQL中limit和offset的用法
2022/05/06 MySQL