【发布时间】:2019-08-28 17:40:15
【问题描述】:
我对 Wordpress 开发非常陌生,所以这个问题可能很愚蠢。可能是我不了解 Wordpress 中自定义过滤器的概念。到目前为止,我已经使用 Wordpress 自己的过滤器挂钩来更改如下值:
add_filter('the_content', 'ffl_add_footer') ; // add footer to the blog content
我刚刚开始学习您可以编写代码的自定义过滤器。所以我的理解是你使用 apply_filters() 来设置一个过滤器挂钩到一个值($var below),如下所示:
apply_filters('filter_tag' , $var ) ;
稍后您连接到该过滤器并使用回调函数来修改值($var),如下所示:
add_filter('filter_tag , 'callback');
您的回调如下所示:
function callback($var) {
//modify $var
return $var
}
所以我用下面的代码测试了这种理解:
function callback($var){
return ($var.'append');
}
$var = 'testing';
echo $var;
$var1 = apply_filters('custom_filter', $var);
add_filter('custom_filter' , 'callback');
echo $var1;
这与我期待 testingtestingappend 时的 testingtesting 相呼应。当我在回调中尝试 exit() 时,似乎根本没有调用回调函数。我是理解错了还是我的代码有问题?
【问题讨论】:
-
在上一个代码示例中,您在实际注册之前应用了过滤器。尝试更改
apply_filter和add_filter的顺序以获得预期的结果。
标签: wordpress