{dede:arclist} 是一个列表循环标签,主要用于在首页、列表页、频道页等地方,调用并展示文章、图集、软件等文档的列表,它是整个 Dedecms 模板体系中使用频率最高的标签之一。

(图片来源网络,侵删)
基本语法和结构
{dede:arclist} 标签的基本结构如下:
{dede:arclist
flag=''
typeid=''
row=''
col='' len=''
infolen=''
imgwidth=''
imgheight=''
listtype=''
orderby=''
keyword=''
channelid=''
limit='start,len'
}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:arclist}
{dede:arclist ...}: 标签的开始,包含各种属性。- 循环体内的HTML代码,这里用
[field:fieldname/]来输出每个文档的特定字段。 {/dede:arclist}: 标签的结束。
常用属性详解
属性写在 {dede:arclist} 和 之间,用空格隔开,它们决定了要调用哪些文章、调用多少以及如何排序。
核心属性(必选或常用)
| 属性名 | 参数说明 | 示例 | 备注 |
|---|---|---|---|
| typeid | 栏目ID | typeid='1' |
最核心的属性,指定要调用哪个栏目的文章,可以是单个ID(如 1),多个ID用逗号隔开(如 1,3,5),-1 表示调用所有栏目(包括子栏目)。 |
| row | 调用条数 | row='10' |
设置要显示的文章数量,默认为 10 条。 |
| orderby | 排序方式 | orderby='pubdate' |
决定文章的排列顺序,常用值:pubdate(发布时间,默认)、click(点击量)、id(文章ID)、arcrank(文章排序级别)、rand(随机)。 |
| flag | 特殊属性 | flag='h' |
调用具有特定属性的文章,常用值:h(头条)、c(推荐)、p(图片)、f(幻灯片),可以组合,如 flag='hc'。 |
| channelid | 模型ID | channelid='1' |
指定调用哪个内容模型下的文章。1 代表文章模型,2 代表图集模型,3 代表下载模型,默认为 1。 |
其他常用属性
| 属性名 | 参数说明 | 示例 | 备注 |
|---|---|---|---|
| infolen | 摘要长度 | infolen='100' |
设置文章摘要(description)显示的字符长度。 |
| imgwidth / imgheight | 缩略图尺寸 | imgwidth='150' imgheight='100' |
如果调用文章的第一张图片作为缩略图,可以设置其宽高。 |
| listtype | 列表类型 | listtype='image' |
指定列表的展示形式。image 为图文列表,text 为纯文本列表。 |
| keyword | 关键词筛选 | keyword='织梦,Dedecms' |
调用包含指定关键词的文章,多个关键词用逗号隔开。 |
| limit | 起始与条数 | limit='0,5' |
更灵活地控制调用范围,格式为 起始索引,调用条数。limit='0,5' 等同于 row='5'。limit='5,5' 表示从第6条开始,调用5条。 |
| subday | 天数筛选 | subday='10' |
调用指定天数内发布的文章。subday='7' 表示调用最近7天发布的文章。 |
常用字段(Field)详解
字段是循环体内用来输出具体内容的占位符,格式为 [field:fieldname/]。
| 字段名 | 示例 | |
|---|---|---|
| [field:title/] | <a href="[field:arcurl/]">[field:title/]</a> |
|
| [field:arcurl/] | 文章链接 | <a href="[field:arcurl/]">阅读全文</a> |
| [field:pubdate/] | 发布时间(时间戳格式) | [field:pubdate/] 输出如 1701234567 |
| [field:description/] | 文章摘要 | [field:description/] |
| [field:picname/] | 文章第一张图片的路径 | <img src="[field:picname/]" alt="[field:title/]"> |
| [field:click/] | 文章点击量 | <span>点击:[field:click/]</span> |
| [field:id/] | 文章ID | [field:id/] |
| [field:litpic/] | 同 [field:picname/],缩略图路径 |
<img src="[field:litpic/]" alt="[field:title/]"> |
| [field:textlink/] | 的超链接 | {field:textlink/} 等同于 <a href="[field:arcurl/]">[field:title/]</a> |
| [field:image/] | 带图片的超链接 | {field:image/} 等同于 <a href="[field:arcurl/]"><img src="[field:litpic/]" alt="[field:title/]" /></a> |
| [field:info/] | 截取后的摘要(配合 infolen 属性) |
[field:info/] |
| [field:typelink/] | 栏目链接 | [field:typelink/] |
| [field:filename/] | 文章的文件名(不含后缀) | [field:filename/] |
字段高级用法:函数
字段支持使用PHP函数来格式化输出,语法为 [field:fieldname function='functioname(@me)'/]。

(图片来源网络,侵删)
-
日期格式化:这是最常用的。
{field:pubdate function='MyDate("Y-m-d H:i:s", @me)'/}@me代表字段本身(这里是时间戳)。MyDate是DedeCMS内置的日期处理函数。"Y-m-d H:i:s"是PHP的日期格式,Y代表4位年份,m代表月份,d代表日。
-
去除HTML标签:
{field:description function='htmlspecialchars(strip_tags(@me))'/}strip_tags(@me)去除摘要中的HTML标签。htmlspecialchars()将特殊字符转为HTML实体,防止XSS攻击。
综合示例
示例1:首页最新文章列表
调用栏目ID为 1 的最新 10 篇文章,标题长度 30 字,按发布时间倒序。
<ul class="news-list">
{dede:arclist typeid='1' row='10' titlelen='30' orderby='pubdate'}
<li>
<span class="date">[field:pubdate function="MyDate('m-d', @me)"/]</span>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
</li>
{/dede:arclist}
</ul>
示例2:带缩略图的图文列表
调用栏目ID为 2 的 6 篇推荐文章,显示缩略图和摘要。

(图片来源网络,侵删)
<div class="pic-list">
{dede:arclist typeid='2' row='6' flag='c' imgwidth='200' imgheight='150' titlelen='40' infolen='100'}
<div class="item">
<a href="[field:arcurl/]">
<img src="[field:litpic/]" alt="[field:title/]" />
<h3>[field:title/]</h3>
<p>[field:info/]</p>
</a>
</div>
{/dede:arclist}
</div>
示例3:调用多个栏目的热门文章
调用栏目ID为 3 和 5 的文章,按点击量排序,显示 5 条。
<div class="hot-articles">
<h2>热门文章</h2>
<ol>
{dede:arclist typeid='3,5' row='5' orderby='click'}
<li>
<span class="num">[field:global name=autoindex/]</span>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
</li>
{/dede:arclist}
</ol>
</div>
注意:[field:global name=autoindex/] 用于获取循环的序号(从1开始)。
重要注意事项
- 栏目ID:
typeid是关键,确保你调用的栏目ID是正确的,你可以在DedeCMS后台的“频道模型” -> “栏目管理”中查看每个栏目的ID。 - 模板缓存:DedeCMS有模板缓存机制,修改模板后,如果前台页面没有变化,请到后台点击“生成” -> “更新主页HTML”或“更新栏目HTML”,或者直接清除缓存。
- 嵌套问题:
{dede:arclist}不能嵌套在它自己内部,也不能嵌套在{dede:list}内部。 - 性能:
{dede:arclist}是通过SQL查询数据库的,在一个页面上使用过多或调用过大的数据量(如row='100'),可能会影响页面加载速度,对于复杂的列表,可以考虑使用DedeCMS的“列表页”功能,它生成的是静态HTML,性能更好。
掌握 {dede:arclist} 是使用DedeCMS进行二次开发和模板制作的基础,多加练习和尝试不同的属性组合,就能灵活地构建出各种丰富的列表页面。
