升级Expression Engine到7后Pro变量报UNDEFINED VARIABLE: HEADER_SORTS错误求助
HEADER_SORTS未定义错误 问题场景
将Expression Engine从5.3版本升级至7.x版本后,在Pro Variables(对应旧版的Low Variables,EE7已将该功能整合进核心系统)功能中触发如下错误:
UNDEFINED VARIABLE: HEADER_SORTS ee/ExpressionEngine/View/_shared/table.php, line 320
当前通过修改核心文件定义常量可临时修复,但该方案不可持续——后续版本升级会覆盖核心文件,导致问题复发。
正确解决方案
彻底移除旧版第三方插件
由于EE7已将Low Variables功能整合为核心功能,无需依赖第三方Pro Variables/Low Variables插件。找到系统中残留的插件文件(通常在system/user/addons/目录下)彻底删除,同时通过后台「Add-ons」->「Manage Add-ons」确认并卸载插件,清理数据库中该插件的相关记录。清理系统缓存
进入EE后台「Tools」->「Clear Caching」,清除所有类型的缓存(包括模板缓存、系统缓存、页面缓存),确保旧插件的残留缓存被完全清除。修复视图调用逻辑
错误根源是调用_shared/table.php视图时未传入$header_sorts变量,这大概率是旧插件的遗留代码或自定义代码未适配EE7的API规范导致。检查所有自定义模板、扩展或模块中调用该核心视图的代码,按照EE7的要求传入必要变量。重置核心文件
如果之前为临时修复修改过核心文件,建议下载官方EE7完整安装包,覆盖system/ee/目录下的核心文件(操作前注意备份自定义配置文件config.php和database.php),确保核心文件为官方纯净版本。
内容的提问来源于stack exchange,提问作者Bhatt Akshay

