访问WordPress小工具页面触发Critical Error,求助排查修复
问题分析与修复方案
错误根源
从报错信息看,问题出在Bridge主题自带的WooCommerce下拉购物车小工具里:代码在第47行尝试调用$cart->is_empty(),但$cart是null。这是因为WordPress后台的「小工具」页面默认不会加载WooCommerce的购物车核心模块,而主题的小工具代码没有做「购物车对象是否存在」的判断,直接调用方法导致致命错误。
修复步骤
方案1:临时禁用问题小工具(最快解决)
- 通过FTP或主机文件管理器,找到
/wp-content/themes/bridge/framework/modules/woocommerce/widgets/目录 - 把
woocommerce-dropdown-cart.php文件重命名,比如改成woocommerce-dropdown-cart.php.bak - 刷新后台「外观>小工具」页面,此时错误应该消失,你可以正常管理其他小工具
方案2:修复小工具代码(彻底解决)
如果需要保留这个小工具,直接修改报错的文件:
- 打开
woocommerce-dropdown-cart.php文件,找到第47行附近调用WC()->cart->is_empty()的代码段 - 在调用方法前添加存在性判断,修改后的代码示例:
// 原代码(示例) if (WC()->cart->is_empty()) { // 原有逻辑 } // 修改后的代码 if (function_exists('WC') && !is_null(WC()->cart) && WC()->cart->is_empty()) { // 保留原有逻辑 }
或者先初始化购物车再执行判断:
// 在使用WC()->cart前添加 if (function_exists('WC') && is_null(WC()->cart)) { WC()->initialize_cart(); } // 保留原有判断逻辑 if (WC()->cart->is_empty()) { // ... }
- 保存文件后,刷新后台小工具页面验证是否修复
方案3:更新主题或WooCommerce
- 检查Bridge主题是否有最新版本,主题开发者可能已经修复了这个后台兼容性问题
- 同时确保WooCommerce是最新稳定版,避免版本不兼容引发的问题
方案4:替换为官方WooCommerce小工具
如果主题自带的小工具问题持续,可以删除它,改用WooCommerce官方提供的「购物车」小工具,功能一致且兼容性更好
内容的提问来源于stack exchange,提问作者Sue
相关产品推荐
相关产品推荐

