这篇教程将从易到难,分为以下几个部分:

- 第一步:添加自定义字段 (准备工作)
- 第二步:在列表页调用自定义字段 (
{dede:list}- 第三步:在内容页调用自定义字段 (
{dede:field}- 第四步:在首页/频道页调用自定义字段 (
{dedarclist}- 第五步:常用技巧与注意事项
- 第三步:在内容页调用自定义字段 (
第一步:添加自定义字段 (准备工作)
在调用之前,你必须先在后台为你的模型(内容模型)添加好自定义字段,这里以文章模型(默认的“文章”模型)为例。
- 登录织梦后台。
- 进入 [核心] -> [内容模型管理]。
- 找到你想要修改的模型,文章”,点击右侧的 [字段管理]。
- 在字段管理页面,点击 [添加新字段]。
- 填写字段信息:
- 字段名称: 这是数据库里的字段名,只能用英文、数字和下划线,
myauthor,myprice,myvideo。建议使用有意义的英文命名。 - 字段提示: 这个会出现在后台发布文章时的表单里,是给管理员看的,作者”、“视频地址”。
- 字段类型: 根据你的需求选择,常用的有:
text: 单行文本textarea: 多行文本editor: 编辑器(可以插入图片、视频等富文本)varchar: 单行文本(和text类似)datetime: 日期时间img: 图片(上传一张图片)media: 多媒体(可以上传视频、音频、附件)select: 下拉选择radio: 单选按钮checkbox: 复选框
- 字段值: 如果是
select,radio,checkbox类型,这里需要填写选项,用 分隔,选项一|选项二|选项三。 - 默认值: (可选)设置一个默认值。
- 是否为空: 选择“否”表示这个字段是必填的。
- 显示在发布页: 选择“是”,这样在后台发布文章时才能看到这个字段。
- 字段名称: 这是数据库里的字段名,只能用英文、数字和下划线,
- 点击 [保存]。
你去后台发布一篇新文章,就能看到你添加的自定义字段了,填写一些测试数据,然后我们就可以在前端模板里调用了。
第二步:在列表页调用自定义字段 ({dede:list}
列表页是指栏目页、首页列表等使用 {dede:list} 标签循环输出文章摘要的地方。
基本调用方法
在 {dede:list} 标签内部,直接使用 {dede:field.你的字段名/} 即可。
(图片来源网络,侵删)
示例:
假设我们添加了一个名为 myauthor 的字段(字段名称是 myauthor),想在列表页显示文章作者。
在模板文件 list_article.htm (或其他栏目列表模板) 中:
{dede:list pagesize='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<!-- 在这里调用自定义字段 myauthor -->
<p>作者:[field:myauthor/]</p>
</li>
{/dede:list}
注意:
{dede:list} 默认是不支持调用所有自定义字段的,因为它为了性能考虑,只获取了部分核心数据。
- 如果直接调用
{field:myauthor/} 显示为空,你需要进行以下设置:
解决列表页调用自定义字段为空的问题
- 进入后台 [系统] -> [系统基本参数] -> [其他选项]。
- 找到 “列表页调用自定义字段” 这个选项。
- 在输入框中填入你希望在列表页调用的所有自定义字段名,用英文逗号 分隔。
myauthor, myprice, myvideo
- 点击 [确定保存]。
完成这一步后,列表页的自定义字段就可以正常显示了。
(图片来源网络,侵删)
第三步:在内容页调用自定义字段 ({dede:field}
页是指文章的详情页,模板文件通常是 article_article.htm。
页调用自定义字段非常简单,直接使用 {dede:field.字段名/} 即可。
示例:
假设我们有一个多行文本字段 description(字段名称为 description),和一个图片字段 mycover(字段名称为 mycover)。
在 article_article.htm 模板中:
<h1>{dede:field.title/}</h1>
<!-- 调用多行文本字段,通常用于副标题或补充说明 -->
<h2>{dede:field.description/}</h2>
<!-- 调用图片字段,需要配合img标签使用 -->
{dede:field.mycover function='(@me)'}
<img src="{@me}" alt="封面图" />
{/dede:field.mycover}
<!-- 调用编辑器字段,它本身就是HTML代码,直接输出即可 -->
{dede:field.mycontent/}
<!-- 调用其他字段 -->
<p>发布时间:{dede:field.pubdate function='GetDateTimeMK(@me)'/}</p>
<p>来源:{dede:field.source/}</p>
<p>作者:{dede:field.myauthor/}</p>
特别注意 function 的使用:
- 对于 图片、文件、多媒体 等字段,它们的值通常是路径,如果你想获取路径里的文件名,或者对路径进行处理,可以使用
function。
mycover 字段存储的是 /uploads/allimg/20251010/123.jpg,你想直接显示这个图片:{dede:field.mycover function='(@me)'}
<img src="{@me}" />
{/dede:field.mycover}
或者更简洁的写法:
<img src="[field:mycover/]" />
- 对于 日期时间 字段,通常需要格式化:
{dede:field.mydate function='strftime("%Y-%m-%d %H:%M:%S", @me)'/}
第四步:在首页/频道页调用自定义字段 ({dede:arclist}
首页或频道页如果使用了 {dede:arclist} 标签来调用文章,其调用方法与 {dede:list} 完全相同。
示例:
在首页模板 index.htm 中:
{dede:arclist titlelen='30' row='5'}
<div class="item">
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<!-- 调用自定义字段 -->
<span>价格:[field:myprice/]</span>
</div>
{/dede:arclist}
同样,如果调用为空,也需要去 [系统] -> [系统基本参数] -> [其他选项] 中,设置 “首页/栏目列表页调用自定义字段”,填入你的字段名,用逗号分隔。
第五步:常用技巧与注意事项
判断字段是否为空 (非常重要)
如果某个自定义字段用户可能不填写,直接调用可能会显示空白数据,影响美观,我们可以使用织梦的 if 标签进行判断。
示例: 只有当 myauthor 字段不为空时才显示作者信息。
{dede:list}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<!-- 使用 if 标签判断 -->
[field:myauthor runphp='yes']
if(@me != '') {
@me = "<p>作者:".@me."</p>";
} else {
@me = ""; // 为空时输出空
}
[/field:myauthor]
</li>
{/dede:list}
更简洁的写法 (推荐):
{dede:list}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<!-- myauthor 不为空,则显示 -->
[field:myauthor runphp='yes']
if(@me) @me = "<p>作者:".@me."</p>";
[/field:myauthor]
</li>
{/dede:list}
调用下拉选择/单选/复选框的值
如果字段类型是 select, radio, checkbox,你在后台设置的选项(如 选项一|选项二|选项三)会被存储为 选项一,选项二,选项三 (用英文逗号分隔)。
如果你想美化显示,可以替换逗号:
<!-- 假设字段名为 mytags -->
<p>标签:{dede:field.mytags function='str_replace(",", " | ", @me)'/}</p>
这样 选项一,选项二 就会显示为 选项一 | 选项二。
字段命名规范
- 字段名称(英文)不要使用
dede_ 开头,这是系统保留前缀。
- 不要使用SQL关键字或函数名作为字段名,如
order, group, value 等。
- 使用有意义的名称,方便后期维护。
性能考虑
在列表页({dede:list} 和 {dede:arclist})中调用过多自定义字段会增加数据库查询压力,降低页面加载速度,只调用列表页真正需要显示的字段,不要贪多。
调用位置
调用方法
注意事项
列表页
{dede:list}
{dede:field.字段名/}
需要在后台开启“列表页调用自定义字段”功能。
首页/频道页
{dede:arclist}
{dede:field.字段名/}
需要在后台开启“首页/栏目列表页调用自定义字段”功能。
通用技巧
runphp
[field:字段名 runphp='yes']...[/field:字段名]
用于判断、处理和格式化字段值。
希望这份详细的教程能帮助你完全掌握织梦自定义字段的调用!
列表页是指栏目页、首页列表等使用 {dede:list} 标签循环输出文章摘要的地方。
基本调用方法
在 {dede:list} 标签内部,直接使用 {dede:field.你的字段名/} 即可。

示例:
假设我们添加了一个名为 myauthor 的字段(字段名称是 myauthor),想在列表页显示文章作者。
在模板文件 list_article.htm (或其他栏目列表模板) 中:
{dede:list pagesize='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<!-- 在这里调用自定义字段 myauthor -->
<p>作者:[field:myauthor/]</p>
</li>
{/dede:list}
注意:
{dede:list}默认是不支持调用所有自定义字段的,因为它为了性能考虑,只获取了部分核心数据。- 如果直接调用
{field:myauthor/}显示为空,你需要进行以下设置:
解决列表页调用自定义字段为空的问题
- 进入后台 [系统] -> [系统基本参数] -> [其他选项]。
- 找到 “列表页调用自定义字段” 这个选项。
- 在输入框中填入你希望在列表页调用的所有自定义字段名,用英文逗号 分隔。
myauthor, myprice, myvideo - 点击 [确定保存]。
完成这一步后,列表页的自定义字段就可以正常显示了。

第三步:在内容页调用自定义字段 ({dede:field}
页是指文章的详情页,模板文件通常是 article_article.htm。
页调用自定义字段非常简单,直接使用 {dede:field.字段名/} 即可。
示例:
假设我们有一个多行文本字段 description(字段名称为 description),和一个图片字段 mycover(字段名称为 mycover)。
在 article_article.htm 模板中:
<h1>{dede:field.title/}</h1>
<!-- 调用多行文本字段,通常用于副标题或补充说明 -->
<h2>{dede:field.description/}</h2>
<!-- 调用图片字段,需要配合img标签使用 -->
{dede:field.mycover function='(@me)'}
<img src="{@me}" alt="封面图" />
{/dede:field.mycover}
<!-- 调用编辑器字段,它本身就是HTML代码,直接输出即可 -->
{dede:field.mycontent/}
<!-- 调用其他字段 -->
<p>发布时间:{dede:field.pubdate function='GetDateTimeMK(@me)'/}</p>
<p>来源:{dede:field.source/}</p>
<p>作者:{dede:field.myauthor/}</p>
特别注意 function 的使用:
- 对于 图片、文件、多媒体 等字段,它们的值通常是路径,如果你想获取路径里的文件名,或者对路径进行处理,可以使用
function。
mycover 字段存储的是 /uploads/allimg/20251010/123.jpg,你想直接显示这个图片:{dede:field.mycover function='(@me)'}
<img src="{@me}" />
{/dede:field.mycover}
或者更简洁的写法:
<img src="[field:mycover/]" />
- 对于 日期时间 字段,通常需要格式化:
{dede:field.mydate function='strftime("%Y-%m-%d %H:%M:%S", @me)'/}
第四步:在首页/频道页调用自定义字段 ({dede:arclist}
首页或频道页如果使用了 {dede:arclist} 标签来调用文章,其调用方法与 {dede:list} 完全相同。
示例:
在首页模板 index.htm 中:
{dede:arclist titlelen='30' row='5'}
<div class="item">
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<!-- 调用自定义字段 -->
<span>价格:[field:myprice/]</span>
</div>
{/dede:arclist}
同样,如果调用为空,也需要去 [系统] -> [系统基本参数] -> [其他选项] 中,设置 “首页/栏目列表页调用自定义字段”,填入你的字段名,用逗号分隔。
第五步:常用技巧与注意事项
判断字段是否为空 (非常重要)
如果某个自定义字段用户可能不填写,直接调用可能会显示空白数据,影响美观,我们可以使用织梦的 if 标签进行判断。
示例: 只有当 myauthor 字段不为空时才显示作者信息。
{dede:list}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<!-- 使用 if 标签判断 -->
[field:myauthor runphp='yes']
if(@me != '') {
@me = "<p>作者:".@me."</p>";
} else {
@me = ""; // 为空时输出空
}
[/field:myauthor]
</li>
{/dede:list}
更简洁的写法 (推荐):
{dede:list}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<!-- myauthor 不为空,则显示 -->
[field:myauthor runphp='yes']
if(@me) @me = "<p>作者:".@me."</p>";
[/field:myauthor]
</li>
{/dede:list}
调用下拉选择/单选/复选框的值
如果字段类型是 select, radio, checkbox,你在后台设置的选项(如 选项一|选项二|选项三)会被存储为 选项一,选项二,选项三 (用英文逗号分隔)。
如果你想美化显示,可以替换逗号:
<!-- 假设字段名为 mytags -->
<p>标签:{dede:field.mytags function='str_replace(",", " | ", @me)'/}</p>
这样 选项一,选项二 就会显示为 选项一 | 选项二。
字段命名规范
- 字段名称(英文)不要使用
dede_ 开头,这是系统保留前缀。
- 不要使用SQL关键字或函数名作为字段名,如
order, group, value 等。
- 使用有意义的名称,方便后期维护。
性能考虑
在列表页({dede:list} 和 {dede:arclist})中调用过多自定义字段会增加数据库查询压力,降低页面加载速度,只调用列表页真正需要显示的字段,不要贪多。
调用位置
调用方法
注意事项
列表页
{dede:list}
{dede:field.字段名/}
需要在后台开启“列表页调用自定义字段”功能。
首页/频道页
{dede:arclist}
{dede:field.字段名/}
需要在后台开启“首页/栏目列表页调用自定义字段”功能。
通用技巧
runphp
[field:字段名 runphp='yes']...[/field:字段名]
用于判断、处理和格式化字段值。
希望这份详细的教程能帮助你完全掌握织梦自定义字段的调用!
页是指文章的详情页,模板文件通常是 article_article.htm。
页调用自定义字段非常简单,直接使用 {dede:field.字段名/} 即可。
示例:
假设我们有一个多行文本字段 description(字段名称为 description),和一个图片字段 mycover(字段名称为 mycover)。
在 article_article.htm 模板中:
<h1>{dede:field.title/}</h1>
<!-- 调用多行文本字段,通常用于副标题或补充说明 -->
<h2>{dede:field.description/}</h2>
<!-- 调用图片字段,需要配合img标签使用 -->
{dede:field.mycover function='(@me)'}
<img src="{@me}" alt="封面图" />
{/dede:field.mycover}
<!-- 调用编辑器字段,它本身就是HTML代码,直接输出即可 -->
{dede:field.mycontent/}
<!-- 调用其他字段 -->
<p>发布时间:{dede:field.pubdate function='GetDateTimeMK(@me)'/}</p>
<p>来源:{dede:field.source/}</p>
<p>作者:{dede:field.myauthor/}</p>
特别注意 function 的使用:
- 对于 图片、文件、多媒体 等字段,它们的值通常是路径,如果你想获取路径里的文件名,或者对路径进行处理,可以使用
function。 mycover字段存储的是/uploads/allimg/20251010/123.jpg,你想直接显示这个图片:{dede:field.mycover function='(@me)'} <img src="{@me}" /> {/dede:field.mycover}或者更简洁的写法:
<img src="[field:mycover/]" />
- 对于 日期时间 字段,通常需要格式化:
{dede:field.mydate function='strftime("%Y-%m-%d %H:%M:%S", @me)'/}
第四步:在首页/频道页调用自定义字段 ({dede:arclist}
首页或频道页如果使用了 {dede:arclist} 标签来调用文章,其调用方法与 {dede:list} 完全相同。
示例:
在首页模板 index.htm 中:
{dede:arclist titlelen='30' row='5'}
<div class="item">
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<!-- 调用自定义字段 -->
<span>价格:[field:myprice/]</span>
</div>
{/dede:arclist}
同样,如果调用为空,也需要去 [系统] -> [系统基本参数] -> [其他选项] 中,设置 “首页/栏目列表页调用自定义字段”,填入你的字段名,用逗号分隔。
第五步:常用技巧与注意事项
判断字段是否为空 (非常重要)
如果某个自定义字段用户可能不填写,直接调用可能会显示空白数据,影响美观,我们可以使用织梦的 if 标签进行判断。
示例: 只有当 myauthor 字段不为空时才显示作者信息。
{dede:list}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<!-- 使用 if 标签判断 -->
[field:myauthor runphp='yes']
if(@me != '') {
@me = "<p>作者:".@me."</p>";
} else {
@me = ""; // 为空时输出空
}
[/field:myauthor]
</li>
{/dede:list}
更简洁的写法 (推荐):
{dede:list}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<!-- myauthor 不为空,则显示 -->
[field:myauthor runphp='yes']
if(@me) @me = "<p>作者:".@me."</p>";
[/field:myauthor]
</li>
{/dede:list}
调用下拉选择/单选/复选框的值
如果字段类型是 select, radio, checkbox,你在后台设置的选项(如 选项一|选项二|选项三)会被存储为 选项一,选项二,选项三 (用英文逗号分隔)。
如果你想美化显示,可以替换逗号:
<!-- 假设字段名为 mytags -->
<p>标签:{dede:field.mytags function='str_replace(",", " | ", @me)'/}</p>
这样 选项一,选项二 就会显示为 选项一 | 选项二。
字段命名规范
- 字段名称(英文)不要使用
dede_ 开头,这是系统保留前缀。
- 不要使用SQL关键字或函数名作为字段名,如
order, group, value 等。
- 使用有意义的名称,方便后期维护。
性能考虑
在列表页({dede:list} 和 {dede:arclist})中调用过多自定义字段会增加数据库查询压力,降低页面加载速度,只调用列表页真正需要显示的字段,不要贪多。
调用位置
调用方法
注意事项
列表页
{dede:list}
{dede:field.字段名/}
需要在后台开启“列表页调用自定义字段”功能。
首页/频道页
{dede:arclist}
{dede:field.字段名/}
需要在后台开启“首页/栏目列表页调用自定义字段”功能。
通用技巧
runphp
[field:字段名 runphp='yes']...[/field:字段名]
用于判断、处理和格式化字段值。
希望这份详细的教程能帮助你完全掌握织梦自定义字段的调用!
首页或频道页如果使用了 {dede:arclist} 标签来调用文章,其调用方法与 {dede:list} 完全相同。
示例:
在首页模板 index.htm 中:
{dede:arclist titlelen='30' row='5'}
<div class="item">
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<!-- 调用自定义字段 -->
<span>价格:[field:myprice/]</span>
</div>
{/dede:arclist}
同样,如果调用为空,也需要去 [系统] -> [系统基本参数] -> [其他选项] 中,设置 “首页/栏目列表页调用自定义字段”,填入你的字段名,用逗号分隔。
第五步:常用技巧与注意事项
判断字段是否为空 (非常重要)
如果某个自定义字段用户可能不填写,直接调用可能会显示空白数据,影响美观,我们可以使用织梦的 if 标签进行判断。
示例: 只有当 myauthor 字段不为空时才显示作者信息。
{dede:list}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<!-- 使用 if 标签判断 -->
[field:myauthor runphp='yes']
if(@me != '') {
@me = "<p>作者:".@me."</p>";
} else {
@me = ""; // 为空时输出空
}
[/field:myauthor]
</li>
{/dede:list}
更简洁的写法 (推荐):
{dede:list}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<!-- myauthor 不为空,则显示 -->
[field:myauthor runphp='yes']
if(@me) @me = "<p>作者:".@me."</p>";
[/field:myauthor]
</li>
{/dede:list}
调用下拉选择/单选/复选框的值
如果字段类型是 select, radio, checkbox,你在后台设置的选项(如 选项一|选项二|选项三)会被存储为 选项一,选项二,选项三 (用英文逗号分隔)。
如果你想美化显示,可以替换逗号:
<!-- 假设字段名为 mytags -->
<p>标签:{dede:field.mytags function='str_replace(",", " | ", @me)'/}</p>
这样 选项一,选项二 就会显示为 选项一 | 选项二。
字段命名规范
- 字段名称(英文)不要使用
dede_开头,这是系统保留前缀。 - 不要使用SQL关键字或函数名作为字段名,如
order,group,value等。 - 使用有意义的名称,方便后期维护。
性能考虑
在列表页({dede:list} 和 {dede:arclist})中调用过多自定义字段会增加数据库查询压力,降低页面加载速度,只调用列表页真正需要显示的字段,不要贪多。
| 调用位置 | 调用方法 | 注意事项 | |
|---|---|---|---|
| 列表页 | {dede:list} |
{dede:field.字段名/} |
需要在后台开启“列表页调用自定义字段”功能。 |
| 首页/频道页 | {dede:arclist} |
{dede:field.字段名/} |
需要在后台开启“首页/栏目列表页调用自定义字段”功能。 |
| 通用技巧 | runphp |
[field:字段名 runphp='yes']...[/field:字段名] |
用于判断、处理和格式化字段值。 |
希望这份详细的教程能帮助你完全掌握织梦自定义字段的调用!
