You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取任意WordPress主题及插件的hooks

WordPress主题/插件钩子(Hooks)获取方法汇总

1. 利用全局变量直接输出所有已注册钩子

适用场景:快速查看当前页面加载的所有钩子,核心、主题、插件注册的钩子都可一次性拿到。
你可以把以下代码临时加到主题functions.php文件,或者自定义代码片段中:

add_action('wp_footer', function() {
    // 仅管理员可见,避免影响普通访客
    if(!current_user_can('manage_options')) return;
    echo '<pre style="background:#fff;padding:20px;margin:20px;border:1px solid #ccc;">';
    // 输出所有动作钩子
    echo '<h3>动作钩子列表:</h3>';
    print_r(array_keys($GLOBALS['wp_actions']));
    // 输出所有过滤器钩子
    echo '<h3>过滤器钩子列表:</h3>';
    print_r(array_keys($GLOBALS['wp_filter']));
    echo '</pre>';
});

如果需要查看后台页面的钩子,把挂载的wp_footer替换为admin_footer即可。

2. 动态监听所有触发的钩子

适用场景:需要定位某个特定操作(比如加购商品、提交表单、加载文章内容)触发的专属钩子,比全局输出更精准。
开启WordPress调试日志后,添加以下代码:

add_action('all', function($hook_name) {
    // 把所有触发的钩子写入调试日志
    error_log('触发钩子:' . $hook_name);
});

走一遍你需要测试的操作流程,之后去wp-content/debug.log文件里就能查到该流程触发的完整钩子顺序和名称。

3. 源码静态扫描

适用场景:需要获取某个主题/插件的全部自定义钩子,静态注册的钩子不会遗漏。

  • 本地开发时用IDE全局搜索主题/插件目录下的do_action(动作钩子注册函数)、apply_filters(过滤器钩子注册函数)两个关键词,所有自定义钩子会直接列出来,还能同步查看钩子参数和开发者注释
  • 服务器环境可以用命令行扫描,执行命令:grep -rE "do_action|apply_filters" /对应主题或插件的目录路径,直接输出所有钩子的注册位置和名称

注意:部分插件/主题会用变量拼接生成动态钩子(比如{$prefix}_after_form_submit这类),静态扫描无法直接获取完整钩子名,搭配前面的动态监听方法就能拿到实际运行时的完整钩子名称。


内容的提问来源于stack exchange,提问作者Mr SKT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:21:00