迅睿 CMS 模板二次开发:自定义字段的前台调用与判断
摘要
后台建好了字段,前台调不出来,是迅睿新手最常卡住的一步。问题多半在字段名和调用方式上。字段名不是显示名后台建字段时,“字段名称”是中文显示名,“字段别名”才是模板里用的名字。比如显示“副标题”,别名 subtitle,模板里写的是 {$su
后台建好了字段,前台调不出来,是迅睿新手最常卡住的一步。问题多半在字段名和调用方式上。
字段名不是显示名
后台建字段时,“字段名称”是中文显示名,“字段别名”才是模板里用的名字。比如显示“副标题”,别名 subtitle,模板里写的是 {$subtitle} 或 {dr_field('subtitle', $id)}。
两种调用路径
路径一:模板变量直接输出,适合详情页:
{if $subtitle}
<p class="sub">{$subtitle}</p>
{/if}路径二:函数调用,适合在循环里或别的地方取:
{dr_field('subtitle', $id)}判断空值要小心
字段存在但内容为空时,变量是有值的空字符串,不是未定义。{if $subtitle} 能正常判空;但如果用 isset() 判断就会误判为存在。
图片字段的特殊处理
图片类字段返回的是附件 ID 或路径数组,不能直接输出。需要拆开取:
{if $cover}
<img src="{dr_get_file($cover)}" alt="{$title}">
{/if}多值字段
复选框、多选这类字段存的是序列化数组,直接输出会得到一串乱码。要 foreach 展开。
排查顺序
- 确认字段别名拼写(大小写敏感)
- 确认字段是否属于当前模块
- 清一次缓存,迅睿对模板有缓存
- 在后台内容编辑页确认该篇内容确实填了值
所属专题
2026年10月20日 14:58
前后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日