1. 主页
  2. 文档
  3. WordPress函数
  4. add_filter()和apply_filters()
  5. 第二章

第二章

apply_filters( $tag, $value, $var … );
//$tag 必需,过滤器钩子的名称
//$value 必需,可以被过滤器函数修改的值
//$var 可选,若干个可以传递给过滤器函数的参数
同理,动作钩子有个函数是add_action,相应地,过滤器钩子也有个函数是add_filter。这两个函数的用法就完全一样了,实质上,add_action就是直接调用add_filter来实现的。add_filter函数的用法:

 

add_filter( $tag, $function_to_add, $priority, $accepted_args );
//$tag 必需,过滤器钩子的名称
//$function_to_add 必需,要添加的过滤器函数
//$priority 可选,过滤器函数的优先级,默认值为10
//$accepted_args 可选,过滤器函数接受的参数数量,默认值为1
 

 

要注意的是,我们在前面说过,过滤器(过滤器函数)的任务是要改变对象或变量的值,所以通过add_filter函数添加的过滤器必须要有个返回值,也就是函数$function_to_add必需有返回值。

过滤器应用实例:

我们以wp_title()函数为例,为大家讲一下过滤器的实际用法,这个函数的定义在wp-includes/general-template.php文件中。在该函数的定义中,调用了apply_filters函数来执行相应的过滤器函数。代码如下:

 

$title = apply_filters(‘wp_title’, $title, $sep, $seplocation);
//这里会执行过滤器函数,对变量$title进行过滤
//正因为这行代码的存在,你可以把你的过滤器函数添加进来,实现对$title的定制
那么,我们可以在该过滤器钩子(wp_title)上添加一个过滤器来改变$title的值。代码如下:

add_filter(‘wp_title’, ‘mytitle’);
//把函数mytitle挂接到过滤器钩子wp_title上
//定义过滤器函数mytitle
function mytitle($title) {
$title = ‘This is a demo.’;
return $title;
}
 

上面这些代码就会把wp_title()函数的返回值$title改为“This is a demo.”,调用wp_title()函数得到的输出就是“This is a demo.”了,不管在什么页面调用都是如此。把这段代码添加到主题的functions.php文件中,你就能看到效果了(如果你的主题使用了wp_title函数)。
————————————————
版权声明:本文为CSDN博主「赵蔚冬」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012809520/article/details/89347202

这篇文章对您有用吗?

我们要如何帮助您?