如何检查是否应用了过滤器

时间:2013-12-10 作者:ironsand

我想从应用此筛选器this question.

add_filter( \'the_content\', \'pre_content_filter\', 0 );

function pre_content_filter( $content ) {
    return preg_replace_callback( \'|<pre.*>(.*)</pre|isU\' , \'convert_pre_entities\', $content );
}

function convert_pre_entities( $matches ) {
    return str_replace( $matches[1], html_entity_decode( $matches[1] ), $matches[0] );
}
但似乎没有效果。所以我想检查一下pre_content_filter 确实适用。我该怎么做?

我试过了debug-bardebug-bar-extender, 但我找不到我是否能做到。

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

您可以使用has_filter() 检查注册的文件管理器。

示例:

add_filter( \'the_content\', function( $content ) 
{
    if ( has_filter( \'the_content\', \'pre_content_filter\' ) )
        return \'pre_content_filter() is active<br>\' . $content;

    return $content;
}, -1 );

SO网友:Subharanjan

您可以找出连接到特定“过滤器”中的所有函数,并检查该列表中是否有特定函数。下面的函数返回连接到特定过滤器挂钩的所有函数的列表。

function get_filters_for( $hook = \'\' ) {
    global $wp_filter;
    if( empty( $hook ) || !isset( $wp_filter[$hook] ) )
        return;

    return $wp_filter[$hook];
}
像这样调用它,并运行一个循环来检查函数是否在此列表中。

get_filters_for( \'the_content\' );

结束

相关推荐

Too many actions/filters!

这里是wordpress的新成员。动作/过滤器的概念本身并不难理解。令我不知所措的是大量可用的操作和过滤器。当我阅读教程/指南时,他们会说“只需将此功能添加到wp\\U head操作或after\\U setup\\u主题”。如果没有这些教程,我究竟如何知道将该函数与该操作挂钩?作为一个初学者,我怎么会知道什么是合适的操作?有没有关于如何导航的建议?谢谢