arclist 主要用于在模板页面中循环输出文章列表,比如首页、列表页、相关文章等,它功能非常强大,可以通过各种参数来精确控制输出的内容。

基本语法
arclist 标签的基本结构如下:
{dede:arclist
flag=''
typeid=''
row=''
col='' len=''
infolen=''
imgwidth=''
imgheight=''
orderby=''
keyword=''
channelid=''
limit=''
}
<!-- 循环体内的HTML和子标签 -->
{/dede:arclist}
核心属性参数详解
下面是 arclist 最常用的一些参数,我会逐一解释它们的用途。
typeid (栏目ID)
- 作用:指定要获取的文章所属的栏目ID。
- 用法:
typeid='1':只获取栏目ID为1下的文章。typeid='1,2,3':获取栏目ID为1、2、3下的文章(多栏目用英文逗号隔开)。typeid='top':获取所有顶级栏目的文章。typeid='son':获取当前栏目下所有子栏目的文章(必须在栏目列表页使用)。typeid='self':只获取当前栏目的文章(必须在栏目列表页使用)。
- 注意:
typeid不指定,arclist默认会获取当前栏目下的文章。
row (获取条数)
- 作用:指定要输出的文章数量。
- 用法:
row='10':输出10篇文章。row='0':输出所有符合条件的文章(谨慎使用,可能导致页面加载缓慢)。
- 默认值:10。
col (分列数)
- 作用:将输出的文章列表进行分列显示,通常配合
row使用。 - 用法:
row='6' col='3':共获取6篇文章,每行显示3篇,共2行。
- 默认值:1。
titlelen (标题长度)
- 作用:控制文章标题显示的字符长度。
- 用法:len='30'`:标题最多显示30个字符(一个汉字算一个字符)。
- 默认值:30。
infolen (摘要长度)
- 作用:控制文章摘要(
description)的显示长度。 - 用法:
infolen='120':摘要最多显示120个字符。
- 默认值:120。
imgwidth 和 imgheight (缩略图尺寸)
- 作用:控制文章缩略图的显示宽度和高度。
- 用法:
imgwidth='200' imgheight='150':缩略图显示为 200x150 像素。
- 注意:这只是在页面上显示的尺寸,不会改变图片文件本身的大小,如果需要生成固定尺寸的缩略图,需要在后台“系统” -> “图片设置”中进行配置。
orderby (排序方式)
- 作用:指定文章的排序规则。
- 常用值:
orderby='hot':按点击数(浏览量)从高到低排序。orderby='pubdate':按发布时间从新到旧排序(最常用)。orderby='click':同hot。orderby='id':按文章ID从大到小排序。orderby='rand':随机排序。
- 默认值:
default,通常按发布时间排序。
flag (特定属性)
- 作用:获取带有特定属性的文章。
- 用法:
flag='h':只获取带有“头条”属性的文章。flag='c':只获取带有“推荐”属性的文章。flag='a':只获取带有“特荐”属性的文章。flag='h,c':获取同时带有“头条”和“推荐”属性的文章。flag='p':只获取带“图片”的文章(即必须有缩略图)。
limit (起始位置和条数)
- 作用:更灵活地控制获取数据的起始位置和数量。
- 用法:
limit='0,10':从第0条开始,获取10条。(相当于row='10')limit='10,5':从第10条开始,获取5条。(常用于分页)
channelid (模型ID)
- 作用:指定要获取的文章所属的内容模型ID。
- 用法:
channelid='1':默认的文章模型。channelid='2':如果网站有其他模型(如软件下载、图集等),可以指定其ID。
keyword (关键词)
- 作用:根据关键词获取文章。
- 用法:
keyword='DedeCMS,织梦'或关键词包含 "DedeCMS" 或 "织梦" 的文章。
循环体内的子标签
在 {dede:arclist} 和 {/dede:arclist} 之间,你可以使用各种子标签来输出文章的具体信息。
| 子标签 | 说明 | 示例 |
|---|---|---|
[field:title/] |
<a href="[field:arcurl/]">[field:title/]</a> |
|
[field:arcurl/] |
文章链接 | <a href="[field:arcurl/]">查看详情</a> |
[field:description/] |
文章摘要 | [field:description function='cn_substr(@me,120)'/] |
[field:pubdate/] |
发布时间 | [field:pubdate function='strftime("%Y-%m-%d",@me)'/] |
[field:click/] |
点击数 | 浏览:[field:click/]次 |
[field:litpic/] |
缩略图地址 | <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/] |
带链接的摘要 | [field:info/] (等同于 <a href="[field:arcurl/]">[field:description/]</a>) |
[field:typename/] |
所属栏目名 | 来自:[field:typename/] |
[field:typeurl/] |
所属栏目链接 | 来自:<a href="[field:typeurl/]">[field:typename/]</a> |
子标签函数修饰:
可以使用 function 对子标签的值进行处理,

[field:title function='cn_substr(@me,20)'/]前20个字符。[field:pubdate function='strftime("%Y年%m月%d日",@me)'/]:格式化日期为2025年10月27日。@me代表子标签当前的原始值。
综合示例
示例1:首页头条新闻
需求:在首页显示一个“头条新闻”区域,只获取带有“h”属性的最新5篇文章。
<div class="headlines">
<h2>头条新闻</h2>
<ul>
{dede:arclist flag='h' row='5' orderby='pubdate'}
<li>
<span class="date">[field:pubdate function='strftime("%m-%d",@me)'/]</span>
<a href="[field:arcurl/]" target="_blank">[field:title/]</a>
</li>
{/dede:arclist}
</ul>
</div>
示例2:文章列表页
需求:在文章列表页,显示当前栏目下所有文章,每行显示2篇,标题30字,摘要120字。
<div class="article-list">
{dede:arclist row='8' col='2' titlelen='30' infolen='120' orderby='pubdate'}
<div class="article-item">
<a href="[field:arcurl/]" class="img-link">
<img src="[field:litpic/]" alt="[field:title/]" width="300" height="200">
</a>
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<p class="summary">[field:description/]</p>
<div class="meta">
<span>[field:pubdate function='strftime("%Y-%m-%d",@me)'/]</span>
<span>浏览:[field:click/]</span>
</div>
</div>
{/dede:arclist}
</div>
示例3:带分页的列表
需求:在列表页显示文章,并实现分页,这里需要结合 注意: 缩略图 希望这份详细的解析能帮助你完全掌握 list 标签和 pagelist
<!-- 列表内容 -->
<div class="article-list">
{dede:list pagesize='10' titlelen='40' orderby='pubdate'}
<div class="list-item">
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<div class="info">
<span>[field:pubdate function='strftime("%Y-%m-%d",@me)'/]</span>
<span>作者:[field:writer/]</span>
<span>来源:[field:source/]</span>
<span>浏览:[field:click/]</span>
</div>
<p>[field:description/]</p>
</div>
{/dede:list}
</div>
<!-- 分页条 -->
<div class="page-nav">
{dede:pagelist listsize='4' listitem='info,index,end,pre,next,pageno'}
{/dede:pagelist}
</div>
{dede:list} 通常用于栏目列表页,它自带分页功能,typeid 默认为当前栏目。{dede:arclist} 更灵活,可以跨栏目调用,但本身不带分页功能,如果要在首页等非列表页实现分页,需要使用 php 代码结合 GetPageList 等函数,比较复杂。
常见问题与注意事项
typeid 不生效?
typeid='self' 或 typeid='son',而实际想调用其他栏目。[field:litpic/] 不显示?
arclist 和 list 的区别?
arclist:万能列表,可以在任何页面调用,功能强大,支持跨栏目调用,但不带分页,适合首页、相关文章等。list:栏目列表,主要用于栏目列表页,自带分页功能,typeid 默认为当前栏目,调用相对简单。dede:arclist 的使用!
