我已经浏览了插件的整个代码库;<plugin_name>-output-block
"E;什么都没有。
(修改后的答案)实际上,您可以停用所有其他插件和/或切换到默认(未修改)主题,如二十主题,以查看问题是由另一个插件还是活动主题引起的。但即便如此,我希望以下内容能有所帮助。
是否有其他方法可以添加过滤器?除add_filter()
?
基本上,这是为某个过滤器钩子注册回调的唯一正确方法。
但是,也可以通过调用add_action()
而不是add_filter()
(add_action()
只是一个包装add_filter()
), 因此,如果需要,请尝试在活动主题和插件中搜索它。例如,使用正则表达式(RegEx),尝试搜索add_(filter|action).+output\\-block
在主题/插件文件(PHP文件)中。
虽然不太可能,但您也可以尝试在主题中搜索$wp_filter
(其中指向$GLOBALS[\'wp_filter\']
) 如果直接访问它以注册筛选器回调。。。
快速(&A);无需手动搜索主题/插件文件的简单(但棘手)方法:使用Query Monitor (QM)带do_action()
(嗯,您仍然需要搜索,但这会更容易。)我与QM没有任何关联,无论是插件还是它的作者,但QM可以帮助您找到与<plugin_name>-output-block
钩
在插件中,暂时使用do_action()
而不是apply_filters()
:
$output = do_action(\'<plugin_name>-output-block\', $output, $my_args); // use this
//$output = apply_filters(\'<plugin_name>-output-block\', $output, $my_args); // not this
但既然你说了<如果我注释掉那一行,输出肯定会中断;,然后您可能需要取消对上面第二行的注释。但是,这样做意味着所有的钩子回调都将被调用至少两次,所以请先尝试注释掉第二行。
然后点击挂钩(&M);行动;项目,然后选择;“块”;从左侧下拉菜单中勾选: