钩子监听实战:如何用Xdebug断点追踪WordPress生命周期事件
最近在调试一个复杂的插件交互逻辑,发现单纯用error_log打印钩子执行顺序效率太低。分享下用Xdebug精准捕获钩子触发点的实战方法:
1. 关键配置(php.ini):
xdebug.mode=develop,debug xdebug.start_with_request=yes xdebug.discover_client_host=1
2. 在自定义钩子回调里埋点:
add_action('wp_loaded', function() {
// 这里下断点
$breakpoint = 1;
do_action('custom_plugin_hook');
});
3. 使用PhpStorm的条件断点功能:
右键断点 → 设置条件如 $_SERVER['REQUEST_URI'] === '/wp-admin/admin.php',这样只在后台请求时触发
踩坑记录:
- 避免在init钩子断点,会卡死登录流程
- 用
did_action()函数检查前置钩子是否已触发 - get_current_screen()在admin_init后才可用
最新打赏

