在织梦CMS(DedeCMS)中,调用自定义字段是扩展内容展示功能的重要操作,尤其适用于需要个性化字段展示的场景,如产品详情、文章专题等,以下是详细的操作步骤和注意事项,帮助您灵活运用自定义字段功能。

自定义字段的添加与配置
-
进入后台字段管理
登录织梦后台,依次点击“核心”→“内容模型管理”,选择需要添加自定义字段的内容模型(如“文章”模型),点击“管理字段”进入字段列表页面。 -
添加新字段
点击“添加新字段”,填写以下信息:- 字段名称:字段的标识符(如
price
、author_intro
),需为英文或数字,不可含空格。 - 字段提示:在前台显示的提示文字(如“产品价格”“作者简介”)。
- 字段类型:根据需求选择,如“文本框”、“多行文本”、“编辑器”、“单选按钮”等。
- 默认值:可选,设置字段的默认内容。
- 是否为必填项:勾选后发布内容时必须填写该字段。
完成后点击“保存”即可。
- 字段名称:字段的标识符(如
调用自定义字段的常用方法
在列表页(首页、栏目页)调用
通过arclist
标签结合array
或php
语法调用自定义字段,例如调用文章模型的price
字段:
{dede:arclist typeid='1' row='5'} <li> [field:title/] 价格:[field:price function='(@me)'/] </li> {/dede:arclist}
注意事项:

- 需确保字段在模型中已设置为“可被列表调用”。
- 若字段为多行文本或编辑器类型,需使用
function
处理,如[field:content function='htmlspecialchars(@me)'/]
。
页(文章详情页)调用
直接使用field
标签调用,
作者简介:{field:author_intro/}
注意事项:
- 自定义字段需在内容发布时填写,否则可能显示为空。
- 若字段类型为“单选/多选”,需在字段管理中设置选项值。
通过SQL语句调用
复杂场景下可使用自定义SQL查询,例如调用文章表中的price
字段:
{dede:sql sql='SELECT title, price FROM dede_archives WHERE id=~id~'} [field:title/] - 价格:[field:price/] {/dede:sql}
注意事项:

- 表前缀(如
dede_
)需与实际数据库一致。 - 避免直接使用用户输入的SQL参数,防止注入风险。
使用自定义模型页模板
针对特殊字段(如商品规格),可创建独立模型页模板: 模型管理”中设计模型并生成模板。
2. 在模板中通过{dede:field.字段名/}
调用字段,如{dede:field.spec/}
。
常见问题与解决方案
问题现象 | 可能原因 | 解决方法 |
---|---|---|
自定义字段在列表页不显示 | 未勾选“列表调用”或字段类型不支持 | 进入字段管理,修改字段设置并重新生成栏目HTML |
调用字段显示为空白 | 内容未填写或字段名拼写错误 | 检查后台内容是否填写字段,核对标签中的字段名 |
编辑器类型字段内容格式错乱 | 未使用function 处理 |
添加function='nl2br(@me)' 保留换行 |
相关问答FAQs
Q1:为什么自定义字段在首页调用时显示为空?
A1:通常是因为字段未在模型中设置为“可被列表调用”,请进入后台“内容模型管理”→“管理字段”,找到对应字段,勾选“列表模板调用选项”并保存,然后重新生成首页HTML。
Q2:如何调用多选类型的自定义字段?
A2:多选字段在数据库中通常以逗号分隔的字符串存储,需使用function
分割处理,
[field:tags function='str_replace(",", " ", @me)'/]
此代码将“标签1,标签2”转换为“标签1 标签2”显示,若需更复杂的处理(如生成链接),可结合explode
和array_map
函数实现。
通过以上方法,您可以灵活调用织梦CMS中的自定义字段,满足多样化的内容展示需求,实际操作中需注意字段类型与调用方式的匹配,并定期测试字段显示效果。