迅睿CMS 模板取自定义字段:从建字段到前台输出的完整链路
摘要
迅睿的自定义字段链路比 Z-Blog 稍长一点:后台建字段 → 绑定到内容模型或栏目 → 模板里取值输出。中间任何一步没做,模板里取到的就是空,而且不报错。 第一步:后台建字段 在内容模型的字段管理里新增,字段类型决定模板里怎么取: 单行
迅睿的自定义字段链路比 Z-Blog 稍长一点:后台建字段 → 绑定到内容模型或栏目 → 模板里取值输出。中间任何一步没做,模板里取到的就是空,而且不报错。
第一步:后台建字段
在内容模型的字段管理里新增,字段类型决定模板里怎么取:
- 单行文本 / 多行文本:直接输出字符串
- 图片 / 文件:输出的是附件路径,需要自己套 img 标签
- 下拉 / 单选:输出的是选项值
- 关联字段:输出的可能是 ID,需要二次查询
字段名建议用英文小写下划线,中文名只作为显示用。字段名一旦定了并且有数据了,再改名会丢数据。
第二步:模板里取值
详情页通常直接用字段名取值:
<?php if (dr_field_value('price')) { ?>
<div class="price"><?php echo dr_field_value('price'); ?></div>
<?php } ?>
注意必须加存在性判断。字段为空时,直接把空值塞进 HTML 会产生空标签,页面上看不出来,但结构上有冗余。
第三步:列表页想显示自定义字段
这是最容易卡住的一步。列表页默认只带基础字段,要显示自定义字段需要:
- 确认该字段在栏目模板的查询里被带出
- 或者用字段输出标签,逐条取值
如果列表里取到的一直是空,先去详情页确认字段有值,再回来查列表的取值方式,通常问题就在这一层。
踩过的一个坑
图片字段存的是附件 ID 或相对路径(取决于版本和配置),直接 <img src="字段"> 有时能出图,有时出破图。稳妥做法是先看输出的原始值是什么形态,再决定要不要拼根路径。
2026年10月20日 14:29
前后30天 · 点日期看归档
9月20日
9月21日
9月22日
9月23日
9月24日
9月25日
9月26日
9月27日
9月28日
9月29日
9月30日
10月1日
10月2日
10月3日
10月4日
10月5日
10月6日
10月7日
10月8日
10月9日
10月10日
10月11日
10月12日
10月13日
10月14日
10月15日
10月16日
10月17日
10月18日
10月19日
10月20日
10月21日
10月22日
10月23日
10月24日
10月25日
10月26日
10月27日
10月28日
10月29日
10月30日
10月31日
11月1日
11月2日
11月3日
11月4日
11月5日
11月6日
11月7日
11月8日
11月9日
11月10日
11月11日
11月12日
11月13日
11月14日
11月15日
11月16日
11月17日
11月18日
11月19日