搜索

模板报错:Undefined constant 解决方法

作者 : 影视站长圈 发布时间:2026-06-08 人阅读

很多站长升级苹果cms最新版后,模板出现致命错误: Undefined constant报错,老版本正常、新版本无法访问,核心原因是:**新版苹果cms对标签语法、引号格式要求极其严格,不能在双引号内再使用双引号,中文/特殊字符必须规范包裹**。

一、报错根本原因

错误写法(老版兼容、新版严格报错):

双引号嵌套双引号 + 中文条件直接写在where内,导致PHP解析为非法常量,触发 Undefined constant 错误。

{maccms:vod num="8" paging="no" type="all" order="desc" by="hits" where="vod_area LIKE '%中国大陆%' OR vod_area LIKE '%国产%'"}

二、新版正确修复写法

规则:外层单引号,内层双引号,严格遵守新版语法规范:

{maccms:vod num="8" paging="no" type="all" order="desc" by="hits" where='vod_area LIKE "%中国大陆%" OR vod_area LIKE "%国产%"'}

核心修改规则

1、where 整体用 单引号 ' ' 包裹

2、内部条件值用 双引号 " " 包裹

3、禁止双引号嵌套双引号 """"

4、禁止不加引号直接写中文条件

三、通用修复模板(所有标签通用)

只要是 vod、art、actor 等标签出现类似报错,统一按这个格式修改:

{maccms:标签 num="数量" paging="no" type="分类" order="desc" by="排序" where='字段 LIKE "%内容%" OR 字段 LIKE "%内容%"'}

四、额外注意事项

1、新版苹果cms不兼容任何不规范引号,老版兼容写法全部需要修正;

2、修改完成后,进入后台 清除系统缓存 + 模板缓存

3、如果批量报错,可以批量替换模板里的 where 引号格式;

4、条件中包含中文、特殊符号、空格,必须用引号严格包裹。

五、快速排查总结

出现 Undefined constant 错误 = 标签语法不规范

解决方法:where 外层单引号,内层双引号,严格按照新版格式书写,修改后立即恢复正常。