要获取当前 WordPress 环境中所有生效的钩子(Hooks),包括 Action 和 Filter,可以使用以下代码示例:
function list_all_hooks() {
global $wp_filter;
$all_hooks = array();
foreach ($wp_filter as $hook_name => $hook_details) {
$all_hooks[$hook_name] = array();
foreach ($hook_details as $priority => $callbacks) {
foreach ($callbacks as $callback) {
if (is_array($callback['function'])) {
$function_info = $callback['function'][0] . '::' . $callback['function'][1];
} else {
$function_info = $callback['function'];
}
$all_hooks[$hook_name][] = array(
'priority' => $priority,
'function' => $function_info,
);
}
}
}
return $all_hooks;
}
$all_hooks = list_all_hooks();
// 打印所有生效的钩子
echo '<pre>';
print_r($all_hooks);
echo '</pre>';
将上述代码添加到您的 WordPress 主题的 functions.php 文件中或者一个自定义插件中。当您访问您的 WordPress 站点时,它将显示所有生效的 Action 和 Filter 钩子以及它们的回调函数和优先级信息。
请注意,这个代码示例会列出大量的钩子,因为 WordPress 有很多内置的钩子,以及可能由主题和插件添加的自定义钩子。这对于调试和开发非常有用。确保仅在需要时使用,以避免性能问题。