我正在尝试调试一个我没有开发的插件,我想列出所有已注册的操作。我已经阅读了以下SO线程:



WordPress:如何获取'the_content'过滤器的所有已注册函数-StackOverflow

但是它是特定于一个钩子的,它与过滤器有关,而不是操作。

是否存在诸如$wp_filter之类的变量?

#1 楼

过滤器和操作都分配给了钩子。分配给钩子的函数存储在全局$wp_filter变量中。因此,您要做的就是print_r

print_r($GLOBALS['wp_filter']);


PS。 add_action函数进行add_filter调用。后者执行$wp_filter[$tag][$priority][$idx]




注意:您可以直接将此代码添加到functions.php中,并且您会在网站上看到调试信息:

add_action('wp', function(){ echo '<pre>';print_r($GLOBALS['wp_filter']); echo '</pre>';exit; } );


评论


很好,但是我可以在哪里调试呢?我试图添加if(WP_DEBUG == true){全局$ wp_filter; print_r($ wp_filter);在index.php中,我没有NULL

– Jacer Omri
13年7月2日在14:57



我不好,不应该写全局$ wp_filter;

– Jacer Omri
13年7月2日在15:03

好,所以你解决了吗?

– KrzysiekDróżdż♦
13年7月2日在15:12

#2 楼

使用此插件可以在页面https://wordpress.org/plugins/show-hooks/
上直观显示

评论


而您是该插件的开发人员,对吗?

– alexwc_
20年8月24日在2:57

是的,我为自己制作了此插件,然后将其托管在WordPress中。

–拉菲克
20年8月25日在15:59