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

如何定位并调试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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:42:16