{dede:arclist} 是 DedeCMS 最核心、最常用的列表标签,用于在首页、列表页等地方调用文章列表。

基础语法和常用参数
我们来看一下 {dede:arclist} 的基本结构:
{dede:arclist typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword=''}
<a href='[field:arcurl/]'>[field:title/]</a>
<p>[field:description function="cn_substr(@me,100)"/]...</p>
<img src='[field:litpic/]' />
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
{/dede:arclist}
常用参数说明:
| 参数 | 说明 | 示例 |
|---|---|---|
typeid |
指定栏目ID,调用指定栏目下的文章,多个ID用逗号隔开。 | typeid='1,3,5' |
row |
调用文章数量。 | row='10' (调用10条) |
col |
分列显示。col='2' 表示每行显示2条。 |
col='2' |
infolen |
摘要长度(按字符数)。 | infolen='100' (摘要最多显示100个字符) |
imgwidth |
缩略图宽度。 | imgwidth='200' |
imgheight |
缩略图高度。 | imgheight='150' |
orderby |
排序方式,常用值:pubdate(发布时间)、click(点击量)、id(文章ID)、sortrank(文章排序级别)。 |
orderby='click' (按点击量从高到低) |
keyword |
,调用包含指定关键词的文章。 | keyword='DedeCMS' |
channelid |
指定模型ID,默认为1(文章模型)。 | channelid='1' |
调用字段详解
字段通过 [field:字段名/] 的形式进行调用,下面我们分类型介绍。
系统默认字段(最常用)
这些是 DedeCMS 文章模型本身就拥有的字段,无需额外配置。

| 字段标签 | 说明 | 示例 |
|---|---|---|
[field:id/] |
文章的唯一ID。 | <span>ID: [field:id/]</span> |
[field:title/] |
。 | <a href="[field:arcurl/]">[field:title/]</a> |
[field:arcurl/] |
文章的完整链接。 | <a href="[field:arcurl/]">阅读全文</a> |
[field:litpic/] |
文章缩略图。 | <img src="[field:litpic/]" alt="[field:title/]"> |
[field:pubdate/] |
文章发布的时间戳(Unix时间戳)。 | <span>[field:pubdate/]</span> |
[field:description/] |
简介。 | <p>[field:description/]</p> |
[field:writer/] |
文章作者。 | <span>作者:[field:writer/]</span> |
[field:source/] |
文章来源。 | <span>来源:[field:source/]</span> |
[field:click/] |
文章的点击量。 | <span>点击:[field:click/]</span> |
[field:typeid/] |
文章所在栏目的ID。 | <span>栏目ID:[field:typeid/]</span> |
字段格式化(使用 function)
很多时候,我们需要对字段进行格式化处理,这时就需要使用 function 属性。
-
日期格式化:
pubdate默认是时间戳,我们需要将其格式化为易读的日期。<!-- 格式:年-月-日 时:分 --> [field:pubdate function='MyDate("Y-m-d H:i",@me)'/] <!-- 格式:年/月/日 --> [field:pubdate function='MyDate("Y/m/d",@me)'/] -
字符串截取: 和
description可能过长,需要截取。
(图片来源网络,侵删)<!-- 标题截取,最多20个字符,并添加... --> [field:title function='cn_substr(@me, 20)'/] <!-- 摘要截取,最多100个字符 --> [field:description function='cn_substr(@me, 100)'/]
-
去除HTML标签: 有时摘要里会包含
<p>等标签,需要去除。<!-- 先去除HTML标签,再截取100个字符 --> [field:description function='cn_html2text(@me)'/]
自定义字段(高级用法)
当默认字段不够用时,我们可以在后台添加自定义字段,调用自定义字段是 DedeCMS 强大的体现。
步骤 1:在后台添加自定义字段
- 登录 DedeCMS 后台。
- 进入【核心】 -> 【内容模型管理】 -> 选择你的文章模型(通常是“普通文章”)-> 【字段管理】。
- 点击【添加新字段】。
- 填写字段信息:
- 字段名:英文,如
price,author_intro。 - 字段别名:中文,如“价格”、“作者简介”。
- 字段类型:根据需要选择,如“单行文本”、“多行文本”、“编辑器”等。
- 字段名:英文,如
- 保存。
步骤 2:在文章中填写数据
发布或编辑文章时,你会在编辑界面看到新添加的字段,并填入相应数据。
步骤 3:在模板中调用
调用自定义字段有两种方式:
直接调用(适用于单行文本、数字等)
直接使用 [field:字段名/] 即可。
假设你添加了一个名为 price 的字段:
<div class="price">价格:[field:price/] 元</div>
使用 array 方式调用(适用于多行文本、编辑器等)
如果自定义字段类型是“多行文本”或“编辑器”,直接调用可能会输出 HTML 标签,使用 array 方式可以更好地控制输出。
语法:
{dede:arclist ...}
[field:自定义字段名 function='html2text(@me)'/]
{/dede:arclist}
或者更常见的 array 写法(推荐):
{dede:arclist ...}
[field:自定义字段名/]
{/dede:arclist}
注意:对于编辑器类型字段,直接调用 [field:字段名/] 会输出完整的 HTML 代码,如果你只想显示纯文本,需要配合 function='html2text'。
示例:
假设你添加了一个名为 author_intro 的“多行文本”字段。
<!-- 直接调用,会保留换行和空格 -->
<div class="intro">
<h4>作者简介:</h4>
[field:author_intro/]
</div>
<!-- 如果只想显示纯文本,可以处理一下 -->
<div class="intro">
<h4>作者简介:</h4>
[field:author_intro function='htmlspecialchars(cn_substr(@me, 200))'/]
</div>
特殊字段调用
-
调用栏目名称和链接
这不是文章的字段,但经常和
arclist一起使用。{dede:arclist typeid='1' row='5'} <p>栏目名:<a href="[field:typeurl/]">[field:typename/]</a></p> <p>文章:<a href="[field:arcurl/]">[field:title/]</a></p> {/dede:arclist}[field:typename/]:当前文章所属的栏目名称。[field:typeurl/]:当前文章所属的栏目链接。
-
调用文章内容(正文)
arclist本身不提供[field:body/]来调用全文,因为它会严重影响性能,通常的做法是点击标题链接后,在文章详情页{dede:field.body/}中调用。如果确实需要在列表页截取一部分正文,可以使用
array来指定附加表字段(如果正文在附加表里)。
完整示例
下面是一个常见的文章列表调用示例,包含了标题、缩略图、发布时间和阅读次数。
<!-- 调用栏目ID为1的下的10篇文章,按发布时间倒序排列 -->
{dede:arclist typeid='1' row='10' titlelen='40' infolen='100' imgwidth='120' imgheight='90' orderby='pubdate'}
<!-- 使用 [field:global.autoindex/] 来实现循环序号 -->
<div class="article-item [field:global name=autoindex runphp="yes"](@me % 2 == 0) ? 'even' : 'odd';[/field:global]">
<div class="thumb">
<a href="[field:arcurl/]" title="[field:title/]">
<!-- 如果没有缩略图,可以显示一个默认图 -->
<img src="[field:litpic/]" alt="[field:title/]" onerror="this.src='/images/default.jpg'">
</a>
</div>
<div class="info">
<h3><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h3>
<p class="summary">[field:description function='cn_substr(@me, 100)'/]...</p>
<div class="meta">
<span class="date">[field:pubdate function='MyDate("Y-m-d",@me)'/]</span>
<span class="views">阅读:[field:click/]</span>
<!-- 假设我们有一个自定义字段 'author' -->
<span class="author">作者:[field:author/]</span>
</div>
</div>
</div>
{/dede:arclist}
- 基础调用:掌握
typeid,row,orderby等常用参数。 - 默认字段:熟练使用
[field:title/],[field:arcurl/],[field:litpic/]等核心字段。 - 格式化:
function='MyDate()'用于日期,function='cn_substr()'用于截取字符串。 - 自定义字段:这是实现个性化网站的关键,记住在后台添加字段 -> 在文章里填写数据 -> 在模板里用
[field:字段名/]调用。 - 实践:多动手尝试,将不同的参数和字段组合起来,就能实现各种复杂的列表效果。
