如何输出所有的Apply_Filters和Do_action?

时间:2019-02-21 作者:Severin

我想输出所有apply\\u过滤器和do\\u操作,以向用户提供它们的概述。

如果我使用代码

add_filter( \'wpErpOs_testFilter\', \'wpErpOs_testFilter_callback\', 10, 1 );
function wpErpOs_testFilter_callback( $testVar ) {
$testVar[] = "GM";
 return $testVar;
}
$testVar = array("VW", "Audi");
$testVar = apply_filters(\'wpErpOs_testFilter\', $testVar);
然后挂钩显示在

global $wp_filter;. 
如果add\\u filter未调用apply\\u filters,则它不会出现在

global $wp_filter;;
如何输出所有apply\\u筛选器和do\\u操作,即使是未调用的筛选器和do\\u操作?

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

apply_filtersdo_actionNOT 存储在$wp_filter, ONLY add_filteradd_action 存储在$wp_filter

当你打电话的时候apply_filtersdo_action, 核心WordPress在所有注册的过滤器或操作中循环(由add_filteradd_action), 查找任何匹配的,然后执行关联的函数。

唯一的区别是存储在$wp_actions 全球风险值

以下是可用于挂钩(操作/筛选器)的全局变量:

global $wp_filter, $wp_actions, $wp_current_filter;

$wp_actions - 存储已激发的操作,每次激发的次数为do_action 这个数字是递增的。

您可以查看查询监视器插件,它可以处理挂钩(操作/过滤器)的跟踪:https://github.com/johnbillion/query-monitor

话虽如此,您可以做的一个选择是为all 操作,然后收集并保存自己运行的筛选器/操作。

以下是一些讨论此问题的网站:https://www.smashingmagazine.com/2012/02/inside-wordpress-actions-filters/

下面是执行此操作的示例代码:https://gist.github.com/bueltge/1000143

https://developer.wordpress.org/plugins/hooks/advanced-topics/#debugging-with-the-all-hook

相关推荐

EDIT-Comments.php COMMENT_ROW_ACTIONS AJAX问题

在编辑注释上。php页面,我正在连接到comment\\u row\\u actions过滤器,以便在末尾添加另一个链接。我正在复制“Approve”链接,添加另一个查询键和值,并修改锚文本。我想根据新查询键的值添加一些注释元。批准的链接:/wp-admin/comment.php?c=9999&action=approvecomment&_wpnonce=8526c66已批准的元链接/wp-admin/comment.php?c=9999&action=approvecommen