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

WordPress调用get_current_screen()未定义致命错误咨询

错误触发根本原因
  • 核心问题为自定义主题blueberrys存在上下文判断缺失的代码逻辑错误:主题全局加载的functions.php文件未区分前台/后台请求场景,直接引入了WooCommerce模板函数文件,该文件第9行在全局作用域无条件执行了前台专属的get_header('home')调用。
  • WordPress生命周期中,get_header()是前台模板渲染流程才会调用的方法,仅适用于前台请求。访问后台插件页(wp-admin/plugins.php)属于后台请求,此时WordPress还未完成后台核心API加载:get_current_screen()是后台专属函数,需要等wp-settings.php执行完成、admin_init钩子触发后才会被定义。
  • 后台请求阶段被强行注入前台模板加载逻辑后,header-home.php内的wp_body_open()钩子被提前触发,钩子绑定的核心函数wp_global_styles_render_svg_filters执行时调用了尚未加载的get_current_screen(),直接抛出未定义函数致命错误。

异常触发链路可从堆栈直接追溯:后台插件页请求 → 加载主题functions.php → 无判断引入WooCommerce模板函数文件 → 全局执行get_header('home') → 加载header-home.php触发wp_body_open() → 钩子回调调用未定义函数抛出错误

可落地修复方案

按优先级操作即可,禁止修改WordPress核心文件(如报错提到的wp-includes/script-loader.php),所有问题均来自自定义主题的不规范代码:

  • 第一步(快速恢复后台访问)
    打开本地主题目录C:\xampp\htdocs\blueberry-test\wp-content\themes\blueberrys\,编辑functions.php第47行的文件引入逻辑,增加后台请求判断,避免后台场景加载前台模板相关文件。
    原错误代码示例:
    // 全局无条件引入,是触发错误的直接入口
    require get_template_directory() . '/inc/woocommerce/storefront-woocommerce-template-functions.php';
    
    修改后代码:
    // 仅前台请求时加载前台模板相关文件
    if ( ! is_admin() ) {
        require get_template_directory() . '/inc/woocommerce/storefront-woocommerce-template-functions.php';
    }
    
  • 第二步(修复根源逻辑错误)
    打开C:\xampp\htdocs\blueberry-test\wp-content\themes\blueberrys\inc\woocommerce\storefront-woocommerce-template-functions.php,定位到第9行的get_header('home')调用:该文件属于函数定义文件,仅允许存放函数声明、钩子绑定逻辑,禁止在全局作用域直接写模板加载、内容输出类代码。
    将这行get_header('home')移到对应的前台首页模板文件中,或挂载到前台专属钩子(如template_redirect)下执行,确保其仅在前台首页渲染场景被触发。
  • 第三步(验证修复结果)
    保存所有文件修改后刷新后台插件页,确认错误消失;依次访问前台首页、商品列表页、商品详情页、结账页,确认前台页头加载正常,无模板缺失、样式错乱问题。
  • 临时兜底方案
    如果修改后仍有异常,可先将blueberrys主题文件夹重命名为任意其他名称(如blueberrys_bak),WordPress会自动切换回默认官方主题,优先恢复后台访问能力后,再逐行排查主题内其他在全局作用域直接执行的前台输出逻辑。

内容的提问来源于stack exchange,提问作者Akhil raj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 16:18:21