DedeCMS 调用字段主要通过两个核心标签:{dede:field} 和 {dede:arclist}。
核心标签:{dede:field}
这个标签主要用于在文章的内容页 (article_article.htm) 中调用当前文章的详细信息。
基本语法:
{dede:field.字段名 /}
或者
{dede:field.字段名 function='htmlspecialchars(@me)'/}
常用字段列表:
| 字段名 | 说明 | 示例 |
| :--- | :--- | :--- | | 文章标题 | {dede:field.title /} |
| shorttitle | 文章简略标题 | {dede:field.shorttitle /} |
| description | 描述 | {dede:field.description /} |
| writer | 作者 | {dede:field.writer /} |
| source | 来源 | {dede:field.source /} |
| pubdate | 发布时间(时间戳格式) | {dede:field.pubdate /} |
| senddate | 录入时间(时间戳格式) | {dede:field.senddate /} |
| click | 点击次数 | {dede:field.click /} |
| id | 文章ID | {dede:field.id /} |
| typeid | 所属栏目ID | {dede:field.typeid /} |
| arclink | 文章链接(自动生成) | <a href="{dede:field.arclink /}">查看原文</a> |
| body | 文章正文内容 | {dede:field.body /} |
| litpic | 文章缩略图 | <img src="{dede:field.litpic /}" alt="{dede:field.title /}"> |
时间格式化
pubdate 和 senddate 默认输出的是 Unix 时间戳(如 1715683200),这显然不是我们想要的,我们可以使用 function 属性来格式化时间。
语法:
{dede:field.pubdate function='strftime("%Y-%m-%d %H:%M:%S", @me)'/}
常用格式化代码:
%Y-%m-%d:2025-05-14%Y年%m月%d日:2025年05月14日%Y-%m-%d %H:%M:2025-05-14 15:30%Y-%m-%d %H:%M:%S:2025-05-14 15:30:45
示例: 在文章模板中,我们通常这样调用发布时间:
发布时间:{dede:field.pubdate function='strftime("%Y-%m-%d %H:%M", @me)'/}
在列表页调用字段:{dede:arclist}
基本语法: 常用属性: 在 | 字段名 | 说明 | 示例 |
| :--- | :--- | :--- | | 文章标题 | 示例:调用首页最新文章列表 这是 DedeCMS 灵活性的重要体现,除了系统自带字段,你还可以在后台添加自定义字段。 步骤: 如何调用: 页 ( 在列表页/首页 ( 语法: 示例:
假设我们添加了一个自定义字段 注意: 使用 去除 HTML 标签
有时我们只需要纯文本,比如截取摘要时不想包含 截取字符串
对于标题或摘要,常常需要截取一定长度。 判断字段是否为空
如果某个字段(如缩略图)可能为空,可以使用 希望这份详细的指南能帮助你完全掌握 DedeCMS 中文章字段的调用!{dede:field} 只能在文章内容页使用,如果你想在列表页 (list_*.htm)、首页 (index.htm) 或其他自定义页面调用文章字段,就需要使用 {dede:arclist}
{dede:arclist typeid='' row='' titlelen=''}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function='strftime("%Y-%m-%d", @me)'/]</span>
</li>
{/dede:arclist}
属性名
说明
示例
typeid调用指定栏目ID下的文章,多个ID用逗号隔开
typeid='1,2'
row调用文章的数量
row='10'
infolen摘要长度
infolen='100'
imgwidth / imgheight缩略图宽度和高度
imgwidth='200' imgheight='150'
channelid模型ID,默认为1(文章)
channelid='1'
flag特殊属性,如
'h' (头条), 'c' (推荐), 'a' (特荐)flag='h'
noflag排除特殊属性
noflag='h' (调用非头条文章){dede:arclist} 内部的字段调用:{dede:arclist} 和 {/dede:arclist} 之间,字段的调用方式略有不同,使用 [field:字段名 /] 的格式。[field:title /] |
| shorttitle | 文章简略标题 | [field:shorttitle /] |
| description | | [field:description /] |
| writer | 作者 | [field:writer /] |
| source | 来源 | [field:source /] |
| pubdate | 发布时间(时间戳) | [field:pubdate function='strftime("%Y-%m-%d", @me)'/] |
| click | 点击次数 | [field:click /] |
| id | 文章ID | [field:id /] |
| arcurl | 文章链接 | [field:arcurl /] |
| litpic | 文章缩略图 | [field:litpic /] |{dede:arclist row='5' titlelen='30' orderby='pubdate'}
<div class="news-item">
<img src="[field:litpic/]" alt="[field:title/]">
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<p class="info">发布时间:[field:pubdate function='strftime("%Y-%m-%d", @me)'/]</p>
</div>
{/dede:arclist}
调用自定义字段
yuyan,字段别名为“语言”)。
{dede:field}):
直接调用即可,DedeCMS 会自动识别。语言:{dede:field.yuyan /}
{dede:arclist}):
默认情况下,{dede:arclist} 不会调用自定义字段,你需要使用 addfields 属性来指定需要调用的自定义字段。{dede:arclist addfields='自定义字段名1,自定义字段名2' ...}
...
[field:自定义字段名1 /]
[field:自定义字段名2 /]
...
{/dede:arclist}
dizhi(地址)。{dede:arclist typeid='1' row='3' addfields='dizhi'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<p>地址:[field:dizhi/]</p>
</li>
{/dede:arclist}
addfields 后,列表的查询效率会略有下降,请谨慎使用。
常用函数和技巧
<p> 等标签。{dede:field.description function='htmlspecialchars(@me)'/} // 转义HTML
{dede:field.description function='html2text(@me)'/} // 去除所有HTML标签
{dede:field.title function='cn_substr(@me, 20)'/} // 截取标题前20个字符
if 标签来判断。{dede:field.litpic runphp='yes'}
if(@me == '') {
@me = '<img src="/images/default.jpg" alt="默认图片">'; // 如果为空,显示默认图片
} else {
@me = '<img src="' . @me . '" alt="' . @me . '">'; // 如果不为空,显示原图
}
{/dede:field.litpic}
场景
字段格式
示例
页
{dede:field}{dede:field.字段名 /}{dede:field.title /}
列表/首页
{dede:arclist}[field:字段名 /][field:title /]
列表调用自定义字段
{dede:arclist}[field:自定义字段名 /]需配合
addfields 属性
时间格式化
functionstrftime('格式', @me)function='strftime("%Y-%m-%d", @me)'
