在 DedeCMS(织梦CMS)中,自定义字段(也称为“附加字段”)是一个非常强大的功能,它允许你在默认的文章模型之外添加额外的内容(比如价格、规格、图片、下载链接等)。

以下是使用 DedeCMS 自定义字段的完整步骤,分为后台创建、前台调用和列表页调用三个部分。
第一步:在后台创建自定义字段
你需要告诉系统你要添加什么字段。
- 进入模型管理:
- 登录后台。
- 点击左侧菜单:
核心->频道模型->内容模型管理。
- 选择模型:
- 找到你需要添加字段的模型(普通文章”),点击右侧的
更改(是一个黄色的图标)。
- 找到你需要添加字段的模型(普通文章”),点击右侧的
- 添加字段:
- 在弹出的页面中,点击
添加新字段按钮。
- 在弹出的页面中,点击
- 设置字段属性(关键步骤):
- 表单提示文字:给管理员看的名称,商品价格”。
- 字段名称:给系统看的,只能用英文字母和数字,
price。 - 字段类型:根据需求选择。
- 单行文本:适合短内容(价格、颜色)。
- 多行文本:适合长内容(详细介绍)。
- 图片/上传文件:适合图片或附件。
- 前台参数:
- 非常重要:勾选
使字段可以在列表的底层模板中获得,如果你不勾选这个,在列表页({dede:list})中将无法调用这个字段。
- 非常重要:勾选
- 确定保存。
第二步:在前台模板中调用字段
创建好字段后,在发布文章时你会看到新的输入框,填入内容后,需要在网页模板中调用。
页 使用
这是最常用的方式,在内容页模板(通常是 article_article.htm 或类似文件)中,直接使用以下标签:

-
直接调用字段值:
{dede:field.字段名/}如果字段名是
price,则写{dede:field.price/}。 -
带有默认值或判断: 如果字段为空,不想显示空白,可以使用 function 进行处理,或者简单的判断:
<!-- 示例:如果价格为空显示面议 --> 价格:{dede:field.price runphp="yes"}if(@me==''){@me='面议';}{/dede:field.price}
在列表页 或循环中使用
如果你在列表页,或者在使用 arclist 标签时,调用方式略有不同。
-
前提条件:必须确保在第一步创建字段时,勾选了“使字段可以在列表的底层模板中获得”。
arclist标签必须加上addfields和channelid属性。 -
调用代码:
{dede:arclist typeid='1' row='10' addfields='字段名1,字段名2' channelid='模型ID'} <li> 标题:[field:title/] <!-- 调用自定义字段 --> 价格:[field:字段名1/] </li> {dede:arclist}- addfields:指定要调用的自定义字段名,多个用逗号隔开。
- channelid:模型ID。
- 普通文章的 ID 通常是
1。 - 图片集通常是
2。 - 你可以在“内容模型管理”列表中查看 ID。
- 普通文章的 ID 通常是
-
在 {dede:list} 标签中:
{dede:list pagesize='10' addfields='字段名' channelid='1'} <li>[field:字段名/]</li> {/dede:list}
常见问题与技巧
调用图片类型的字段
如果你创建的字段类型是“图片”,直接调用 你需要手动补全 HTML 代码: 如果是文件类型,直接调用会输出文件路径,如果需要获取文件名或后缀,可能需要配合 PHP 函数处理。 90% 的原因是因为: 如果字段类型是 {dede:field.pic/} 会输出图片的相对路径(/uploads/.../image.jpg),而不是一个完整的 <img>
<img src="{dede:field.pic/}" alt="我的图片">
调用附件/文件类型
为什么列表页调用不出来?
arclist 标签中加 addfields='字段名'。arclist 标签中加 channelid='模型ID'。多选框或复选框的调用
option(下拉框)或 checkbox(复选框),直接调用会显示数据库存储的值(通常是英文或数字),如果需要显示中文文本,可能需要查看织梦的 field 相关函数,或者使用 runphp 进行简单的映射替换。
{dede:field.字段名/}。[field:字段名/],且必须加 addfields 和 channelid。
