准备工作:创建自定义字段
在调用之前,你必须确保你的自定义字段已经创建好并附加到了相应的模型上,如果你已经完成这一步,可以跳过此部分。

- 登录后台:进入织梦DedeCMS后台管理。
- 进入模型管理:在左侧菜单栏找到
核心->内容模型管理。 - 选择模型:在模型列表中,点击你想要修改的模型后面的
管理字段链接,如果你想给“文章”模型添加一个“作者简介”字段,就点击“文章”模型对应的管理字段。 - 添加字段:
- 点击
添加新字段按钮。 - 字段名称:填写
author_intro(建议用英文,方便调用)。 - :填写
作者简介(这个会在后台表单显示)。 - 字段类型选择,
多行文本、编辑器、单选按钮、下拉列表等,对于“作者简介”,通常选择多行文本或编辑器。 - 字段值:留空。
- 其他选项:根据需要设置,如是否为必填项、是否在列表页显示等。
- 点击
保存按钮。
- 点击
- 更新缓存:添加完字段后,系统会提示你更新栏目缓存和系统缓存,务必点击
更新系统缓存,否则新字段不会在前台显示。
你的自定义字段 author_intro (作者简介) 已经准备就绪。
调用自定义字段的几种方法
调用自定义字段主要使用 {dede:field.字段名/} 标签,根据不同的页面(列表页、内容页、封面页),调用方式略有不同。
方法1:在内容页(文章详情页)调用
这是最简单、最直接的调用方式,在内容页模板(通常是 示例:
假设你添加了一个名为 语法说明: 在列表页调用自定义字段,需要使用 关键点:你必须在 示例:
假设你在文章模型中添加了 语法说明: 当 适用场景: 示例:
想在首页调用所有“产品”模型(假设模型ID为2)的文章,并显示其自定义字段 找到你的自定义字段在数据库中的表名: 编写SQL语句并调用: 在首页模板( 语法说明: 单选按钮/下拉列表:
字段存储的是选项的 多选复选框:
字段存储的是多个选项的 图片/附件: | 调用位置 | 核心标签 | 关键步骤/示例 |
| :--- | :--- | :--- |页 | 希望这份详细的指南能帮助你完全掌握在织梦中调用自定义字段的方法!如果遇到具体问题,可以提供你的字段名称、类型和想要调用的页面,我可以给出更精确的解决方案。article_article.htm)中,可以直接使用 field
source (来源) 的文本字段和一个名为 video (视频) 的编辑器字段。<h1>{dede:field.title/}</h1>
<!-- 调用文本类型的自定义字段 'source' -->
<p class="source">来源:{dede:field.source/}</p>
<!-- 调用编辑器类型的自定义字段 'video',注意:编辑器字段通常需要用 function='Html2Text(@me)' 来过滤HTML标签,或者直接输出 -->
<!-- 如果希望保留HTML格式(比如视频代码、图片等),直接输出即可 -->
<div class="video-content">
{dede:field.video/}
</div>
<!-- 如果是纯文本,希望去除HTML标签,可以这样用 -->
{dede:field.video function='Html2Text(@me)'/}
<!-- 文章正文 -->
{dede:field.body/}

{dede:field.字段名/}:直接输出字段内容。{dede:field.字段名 function='自定义函数'/}:对字段内容进行处理。Html2Text 是一个非常常用的函数,用于将HTML代码转换为纯文本。
方法2:在列表页(频道页、栏目页、首页列表)调用
{dede:list} 或 {dede:arclist} 标签,并在标签内使用 array 属性来指定需要调用的字段。array 属性中列出所有你希望在列表页显示的自定义字段名,用逗号隔开。price (价格) 和 author (作者) 两个字段,想在列表页显示它们。<ul>
{dede:list titlelen='40' infolen='160' orderby='pubdate'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<!-- 调用自定义字段 'price' 和 'author' -->
<!-- 注意:必须在 list 标签的 array 属性中声明这些字段 -->
<p>价格:[field:price/]</p>
<p>作者:[field:author/]</p>
<p>[field:info/]</p>
</li>
{/dede:list}
</ul>
{dede:list}:列表循环标签。array='price,author':这是必须的,告诉织梦在查询文章列表时,连同 price 和 author 这两个字段一起查询,如果不写,[field:price/] 将无法获取到值并显示为空。[field:字段名/]:在 {dede:list} 循环内部,使用 [field:] 来调用当前文章的字段。{dede:arclist} 的调用方式完全一样:{dede:arclist titlelen='40' row='10' channelid='1' array='price,author'}
<a href="[field:arcurl/]">[field:title/]</a>
价格:[field:price/] | 作者:[field:author/]
{/dede:arclist}
channelid='1':表示调用模型ID为1的频道(通常是“文章”模型),如果你的自定义字段在其他模型,需要指定对应的 channelid。
方法3:使用SQL语句灵活调用
field 和 list 标签无法满足复杂需求时,可以直接使用SQL语句进行查询,这种方式非常灵活,但需要你具备一定的SQL基础。
product_spec (产品规格)。
dede_archives 表,这是文章主表。dede_addonXX,XX 是你的模型ID,模型ID为2的附加表就是 dede_addon2。dede_addon2 表中,你会看到你创建的字段,如 product_spec。index.htm)或其他可以使用PHP代码的文件中,使用 {dede:sql}
<h2>最新产品规格</h2>
<ul>
{dede:sql sql="SELECT a.title, b.product_spec FROM dede_archives AS a LEFT JOIN dede_addon2 AS b ON a.id = b.aid WHERE a.channel = 2 ORDER BY a.pubdate DESC LIMIT 10"}
<li>
<a href="/plus/view.php?aid=[field:id/]">[field:title/]</a>
<span>规格:[field:product_spec/]</span>
</li>
{/dede:sql}
</ul>
{dede:sql sql='完整的SQL语句'/}:执行自定义SQL查询。SELECT a.title, b.product_spec:选择需要显示的字段,a 代表 dede_archives 表,b 代表 dede_addon2 表。FROM dede_archives AS a LEFT JOIN dede_addon2 AS b ON a.id = b.aid:将主表和附加表通过文章ID (aid) 关联起来。WHERE a.channel = 2:筛选出模型ID为2(产品模型)的文章。[field:字段名/]:在 {dede:sql} 循环内部,使用 [field:] 来调用SQL查询结果中的字段。
不同字段类型的调用注意事项
value 值,如果你想显示选项的 text),需要使用 function 进行转换。
level,选项为:value='1' text='入门',value='2' text='进阶'。{dede:field.level/} 会显示 1 或 2。value 值,通常用逗号 分隔,如 1,3。
{dede:field.checkbox/} 会显示 1,3。
<img src="{dede:field.image_url/}" alt="">。<a> 标签调用:<a href="{dede:field.attachment_url/}" target="_blank">下载附件</a>。{dede:field.字段名/} | 最简单,直接调用。 |
| | {dede:field.字段名 function='函数'/} | 对内容进行处理,如去除HTML。 |
| 列表页 | {dede:list} / {dede:arclist} | 必须在 array 属性中声明字段名。 |
| | | {dede:list array='字段1,字段2'} ... [field:字段1/] ... {/dede:list} |
| 任意位置** | {dede:sql} | 编写SQL语句,关联主表和附加表,灵活但复杂。 |
| | | {dede:sql sql='SELECT...'} ... [field:字段名/] ... {/dede:sql} |
