OctoberCMS中能否在配置区使用自定义页面变量?
在OctoberCMS页面配置区添加自定义变量的正确方式
你遇到的这个情况很典型——直接在页面配置块(==上方的区域)添加custom_var这类自定义变量,确实会被管理面板的编辑器自动清除。原因是OctoberCMS的页面配置只识别系统预定义的配置项(比如url、layout、title、meta_title这些),不在白名单里的自定义键值对,在保存页面时会被过滤掉,所以这种用法是不被支持的。
不过别担心,OctoberCMS提供了官方的方式来添加页面级自定义变量,给你两种靠谱的解决方案:
方案1:使用页面自带的「自定义字段」功能
这是最推荐的方式,完全符合系统规范,还能在后台可视化编辑变量:
- 进入页面编辑界面,切换到Settings(设置)标签页
- 找到Custom Fields(自定义字段)区域,点击「Add Field」新增字段
- 给字段命名(比如
custom_var),选择合适的字段类型(比如Text文本型),填入默认值value - 保存页面后,在模板里直接通过
{{ this.custom_var }}就能调用这个变量了
方案2:用局部模板或自定义组件存储变量
如果需要更灵活的逻辑,比如变量需要复用在多个页面,或者附带一些处理逻辑,可以试试这两种方式:
- 局部模板:创建一个
partials/custom-vars.htm文件,内容写{% set custom_var = "value" %},然后在页面模板里用{% partial 'custom-vars' %}引入,之后就能直接使用{{ custom_var }} - 自定义组件:创建一个简单的自定义组件,在组件的模板文件里定义变量,或者在组件的PHP类中添加属性,把组件挂载到页面后,通过
{{ component_name.custom_var }}调用(component_name是你给组件起的别名)
总之,直接在页面配置块加自定义变量的方式是行不通的,用官方提供的上述方法才能稳定实现需求。
内容的提问来源于stack exchange,提问作者T.O.M.
相关产品推荐
相关产品推荐

