如何定位并调试WordPress全局运行的PHP代码片段?
调试WordPress代码片段的实用方法
首先明确:PHP是服务器端执行代码,Chrome控制台的Sources面板只能查看前端JS/CSS/HTML资源,找不到PHP代码是正常的;且缓存文件夹里的是对象缓存生成的临时文件,并非你编辑的原始代码片段,调试无需盯着它。
以下是具体调试步骤:
给代码片段加调试标记
修改代码片段,加入服务器端日志或前端提示,验证代码是否执行:add_action( 'init', 'woocommerce_clear_cart_url' ); function woocommerce_clear_cart_url() { // 写入服务器错误日志,验证函数是否触发 error_log('Clear cart function is running'); if ( isset( $_GET['clear-cart'] ) ) { // 改用WC()全局函数,比$woocommerce更可靠 WC()->cart->empty_cart(true); // 输出前端控制台日志,确认购物车清空动作执行 echo '<script>console.log("购物车已通过代码片段清空");</script>'; } }保存后访问带
?clear-cart参数的URL,然后:- 查看Chrome控制台是否有对应的JS日志输出
- 去服务器PHP错误日志(通常在
public_html/wp-content/debug.log或服务器面板日志模块)中查找Clear cart function is running这条记录
禁用对象缓存排除干扰
缓存文件夹的文件是对象缓存产物,可能导致代码修改后不生效:- 找到你的缓存插件(如WP Rocket、W3 Total Cache),暂时关闭「对象缓存」功能
- 或直接删除
public_html/wp-content/cache/object下所有文件,再刷新页面测试
检查代码逻辑本身
建议启用你注释掉的WC()->cart->empty_cart(true);——$woocommerce全局变量有时在init钩子触发时未完全初始化,而WC()是官方推荐的全局访问方式,可靠性更高。确认代码片段加载状态
若使用「Code Snippets」类插件,前往插件管理页面确认该片段处于启用状态,且「Run snippet everywhere」设置已正确生效。
内容的提问来源于stack exchange,提问作者macTAR
相关产品推荐
相关产品推荐

