检查 Wordpress 主题中是否存在特定操作或过滤器

ter*_*r45 3 php wordpress

我想检查 Wordpress 主题中是否存在任何操作/过滤器。

我试过has_actionhas_filter。但是这些函数的问题在于,如果钩子/过滤器存在并且没有回调添加到钩子或从钩子中删除所有回调,这些将返回 false。

Jak*_*ris 5

没有内置的 Wordpress 函数会检查这一点。但是您可以使用以下代码检查过滤器是否存在:

// check for the existence of "the_content" filter
if( array_key_exists( 'the_content' , $GLOBALS['wp_filter']) ) {
}
Run Code Online (Sandbox Code Playgroud)

这样做的问题是它只会检查过滤器是否存在于上述代码运行的点。所以如果上面的代码在插件中运行,并且在主题模板文件中添加了一个过滤器(在执行顺序后面发生,它不会出现。