field 标签是 DedeCMS 中一个非常核心和强大的标签,它主要用于在列表页、内容页等地方,直接调用当前文档(文章)的某个特定字段值。

图集模型中的常用字段
我们需要了解 DedeCMS 图集模型 (image) 中默认包含哪些字段,这些字段是 field 标签可以调用的基础。
| 字段名 | 说明 | 调用示例 |
|---|---|---|
id |
文档的唯一ID | {dede:field.id/} |
shorttitle |
{dede:field.shorttitle/} |
|
picname |
图集封面图片的文件名(不含路径) | {dede:field.picname/} |
litpic |
图集封面图片的完整路径 | {dede:field.litpic/} |
description |
图集的描述/摘要 | {dede:field.description function='htmlspecialchars(@me)'/} |
keyword |
图集的关键词 | {dede:field.keyword/} |
click |
点击数 | {dede:field.click/} |
posttime |
发布时间(时间戳) | {dede:field.posttime function='strftime("%Y-%m-%d", @me)'/} |
senddate |
同 posttime |
{dede:field.senddate/} |
arcrank |
文档状态(如:0为正常,-1为待审核) | {dede:field.arcrank/} |
typename |
所属栏目名称 | {dede:field.typename/} |
ismake |
是否生成静态页 | {dede:field.ismake/} |
userip |
发布者IP | {dede:field.userip/} |
body |
(包含所有图片的HTML代码) | {dede:field.body/} |
imgurls |
图集图片列表(对象,需要特殊处理) | {dede:field.imgurls/} |
field 标签的基本用法
field 标签的基本语法非常简单:
{dede:field.字段名/}
或者,如果需要对字段值进行处理(例如格式化日期、截取字符串等),可以使用 function 属性:
{dede:field.字段名 function="处理函数(@me)"/}
常见用法示例:
-
调用图集标题:
(图片来源网络,侵删)<h1>{dede:field.title/}</h1> -
调用图集封面图: 这是最常用的用法,
litpic字段直接返回图片的完整路径。<img src="{dede:field.litpic/}" alt="{dede:field.title/}"> -
调用发布时间(格式化为 年-月-日):
posttime返回的是 Unix 时间戳,需要用strftime函数进行格式化。发布时间:{dede:field.posttime function='strftime("%Y-%m-%d", @me)'/} -
调用图集描述(并防止XSS攻击): 从数据库读取的内容可能包含恶意代码,使用
htmlspecialchars函数进行转义是一个好习惯。<p>{dede:field.description function='htmlspecialchars(@me)'/}</p>
特殊字段的深度调用
图集模型最核心的两个字段是 body 和 imgurls,它们的调用方式比较特殊。

调用图集内容 ({dede:field.body/})
body 字段存储了你在后台编辑图集时,通过“上传图片”功能生成的所有图片及其说明的 HTML 代码。
直接调用: 它会输出一整段 HTML,通常用于图集内容页。
<!-- 在图集内容页显示所有图片和说明 -->
{dede:field.body/}
应用场景:
这个标签主要用于页 (article_image.htm),用来显示完整的图集。
调用图集图片列表 ({dede:field.imgurls/})
基本遍历语法: 更完整的示例(在列表页或内容页显示所有缩略图): 注意:在列表循环 有时候我们想在内容页顶部再显示一遍封面图。 理解 imgurls 是一个对象,而不是一个简单的字符串,它包含了图集中所有图片的信息(如原始图、缩略图、图片说明等),要遍历并显示这些图片,需要使用 array
{dede:field.imgurls}
<!-- 循环体内的 `@me` 代表当前图片的信息对象 -->
<img src="{@me['url']}" alt="{@me['alt']}">
{/dede:field.imgurls}
<div class="thumb-list">
{dede:field.imgurls}
<li>
<!-- 调用缩略图路径 -->
<img src="{@me['litpic']}" alt="{@me['alt']}" title="{@me['alt']}">
</li>
{/dede:field.imgurls}
</div>
imgurls 对象内可用的键:
url: 原始图片路径。litpic: 缩略图路径。alt: 图片的说明文字。text: 图片的附加说明(较少使用)。
实际应用场景示例
在图集列表页 (
list_*.htm) 显示封面图和标题{dede:list pagesize='12'}
<li>
<!-- 使用 field.litpic 调用当前图集的封面图 -->
<a href="[field:arcurl/]">
<img src="[field:litpic/]" alt="[field:title/]">
</a>
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
</li>
{/dede:list}
{dede:list} 内部,{dede:field} 可以简化为 [field:]。{dede:field.litpic/} 和 [field:litpic/] 在此环境下是等效的。页 (
article_image.htm) 显示所有图片<h1>{dede:field.title/}</h1>
<!-- 方式一:直接调用 body,显示默认样式 -->
{dede:field.body/}
<!-- 方式二:使用 imgurls 对象进行自定义样式输出 -->
<div class="my-gallery">
{dede:field.imgurls}
<figure>
<img src="{@me['url']}" alt="{@me['alt']}" data-src="{@me['url']}" />
<figcaption>{@me['alt']}</figcaption>
</figure>
{/dede:field.imgurls}
</div>
页显示封面图作为大图
<!-- 显示封面图 -->
<div class="main-image">
<img src="{dede:field.litpic/}" alt="{dede:field.title/}">
</div>
<!-- 显示所有图片列表 -->
<div class="image-gallery">
{dede:field.imgurls}
<!-- 如果当前图片不是封面图,才显示(可选逻辑) -->
<!-- {dede:if}<![CDATA[ {@me['litpic'] != '{dede:field.litpic/}' } ]]>{/dede:if} -->
<a href="{@me['url']}" data-lightbox="gallery" data-title="{@me['alt']}">
<img src="{@me['litpic']}" alt="{@me['alt']}">
</a>
{/dede:field.imgurls}
</div>
需求
推荐标签
说明
获取封面图路径
{dede:field.litpic/}最常用,用于列表页、内容页等任何地方显示封面。
获取图集标题
{dede:field.title/}标准调用。
获取所有图片的HTML
{dede:field.body/}主要用于内容页,快速输出默认样式的图集。
获取并遍历所有图片信息
{dede:field.imgurls}{/dede:field.imgurls}最灵活,可以自定义每张图片的显示样式和链接。
获取图片说明
{@me['alt']}必须在
{dede:field.imgurls} 循环内部使用。field 标签,特别是 litpic 和 imgurls 的区别与用法,是熟练掌握 DedeCMS 图集功能的关键,希望这份详细的解释能帮助你更好地使用 DedeCMS!
