核心概念与设计定位
{dede:list} - 专用列表页标签
- 设计定位:
{dede:list}是专门为“列表页面”设计的标签,在DedeCMS中,列表页面(通常是list_栏目ID.html或index.html)的主要任务就是展示文章的摘要信息,如标题、缩略图、简介、发布时间等,并提供分页功能。 - 工作原理:它通常与分页标签
{dede:pagelist}紧密绑定,一次性获取当前页所需的数据(每页20条),然后进行展示,它内部通常已经包含了调用文章摘要(description)和缩略图(litpic)的逻辑。 - 核心特点:为分页而生,功能内聚,它是一个“一站式”的解决方案,专门用来构建标准的列表页。
{dede:arclist} - 万能文章列表标签
- 设计定位:
{dede:arclist}是一个功能极其强大的“通用”文章列表标签,它的设计初衷是在任何需要显示文章的地方(不仅仅是列表页)灵活地调用文章数据。 - 工作原理:它像一个“瑞士军刀”,通过丰富的参数来精确控制要获取哪些文章、获取多少条、如何排序、显示哪些字段等,它不直接处理分页,分页需要通过其他方式(如PHP代码或特定参数)来实现。
- 核心特点:高度灵活,无所不能,你可以用它来调用首页推荐、热门文章、相关文章、栏目头条等任何场景下的文章列表。
详细对比表格
| 特性 | {dede:list} |
{dede:arclist} |
|---|---|---|
| 主要用途 | 专用列表页(如 list_*.html) |
通用场景(首页、列表页、内容页、自定义页面等) |
| 分页功能 | 内置且必须与 {dede:pagelist} 配合使用 |
不直接支持,需要手动编写PHP代码或使用特定参数(如 limit)实现分页逻辑 |
| 默认字段 | 通常只包含标题、缩略图、简介、时间等列表常用字段 | 可以调用文章的所有字段,如 id, title, description, writer, pubdate, click, body (内容) 等 |
| 灵活性 | 较低,参数相对固定,主要用于列表展示 | 极高,拥有几十个参数,可以精确控制查询条件、排序、显示数量等 |
| 性能 | 在列表页场景下,性能较好且稳定,因为它为该场景做了优化 | 如果使用不当(如调用过多数据、字段过多),性能可能受影响,但正确使用下效率很高 |
| 典型使用场景 | - 栏目列表页 - 首页文章列表(需配合分页) |
- 首页焦点图/推荐位 - 内容页的相关文章/热门文章 - 自定义页面调用特定栏目文章 - 调用指定ID的文章 - 任何需要非标准列表的地方 |
代码示例与使用场景
标准的栏目列表页
这是 {dede:list} 的“主场”,假设我们要在 list_1.html (栏目ID为1的列表页) 中显示文章。

(图片来源网络,侵删)
模板代码 (list_1.html):
{dede:list pagesize='20'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
<p>[field:description/]...</p>
<img src="[field:litpic/]" alt="[field:title/]">
</li>
{/dede:list}
<!-- 分页标签,必须放在 {dede:list} 标签之后 -->
<div class="dede_pages">
<ul>
{dede:pagelist listsize='4' listitem='pre,next,end,option,pageno'}
</ul>
</div>
说明:
pagesize='20':设置每页显示20条文章。[field:arcurl/]:文章链接。[field:title/]。[field:description/]:[field:litpic/]:文章缩略图。{dede:pagelist}:生成分页导航,listsize和listitem用于控制分页页码的显示样式。
首页调用推荐文章(不涉及分页)
这是 {dede:arclist} 的经典应用,我们想在首页调用“推荐”属性的文章,并且只显示标题和链接。
模板代码 (index.html):

(图片来源网络,侵删)
<h3>网站推荐</h3>
<ul>
{dede:arclist flag='c' titlelen='30' row='5'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
</li>
{/dede:arclist}
</ul>
说明:
flag='c':调用属性为“推荐”(c is for 'commend') 的文章,len='30'`:标题长度限制为30个字符。row='5':只调用5条文章。- 这里没有分页,因为首页通常只需要展示最新的几条。
内容页调用相关文章
这个场景 {dede:arclist} 也比 {dede:list} 更合适。
模板代码 (文章内容页 article_article.htm):
<h3>相关文章</h3>
<ul>
{dede:arclist typeid='0' row='8' titlelen='24'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
</li>
{/dede:arclist}
</ul>
说明:

(图片来源网络,侵删)
typeid='0':表示调用与当前文章同栏目下的文章。0是一个特殊值,代表“当前栏目”。row='8':显示8条相关文章。- 这个列表通常不需要分页,所以用
{dede:arclist}非常方便。
总结与选择建议
什么时候用 {dede:list}?
- 当你创建一个标准的、需要分页的栏目列表页时,这是它的本职工作,使用它会最直接、最方便。
- 遵循DedeCMS的默认结构,
{dede:list}+{dede:pagelist}是构建列表页的黄金组合。
什么时候用 {dede:arclist}?
- 在任何非标准列表页面的地方,
- 首页:调用推荐、热门、头条等。
- 内容页:调用相关文章、上一篇/下一篇。
- 自定义页面:调用特定条件下的文章列表。
- 需要调用文章正文(
body)等非摘要字段时。 - 需要非常复杂的查询条件时(按特定时间范围、特定作者、特定自定义字段等)。
- 当你不需要分页,或者需要用PHP代码手动控制分页逻辑时。
- 列表页(分页) ->
{dede:list} - 其他所有地方(不分页或特殊需求) ->
{dede:arclist}
掌握这两个标签的正确用法,能让你在DedeCMS模板开发中游刃有余,构建出既美观又高效的网站。
