arclist
无论是调用文章列表还是单个文章,最核心、最强大的标签都是 {dede:arclist},通过为它设置不同的属性,我们可以实现各种调用需求。

(图片来源网络,侵删)
调用指定栏目的文章列表(最常用)
这是最基础的需求,比如在首页显示“公司新闻”这个栏目的最新5篇文章。
步骤 1:获取目标栏目的 ID
在编写代码之前,你首先需要知道要调用的那个栏目(公司新闻”)的 ID。
- 登录你的 DedeCMS 后台。
- 进入【核心】 -> 【栏目管理】。
- 找到你要调用的那个栏目,将鼠标悬停在上面,浏览器左下角会显示链接,类似
javascript:EditSort(1),括号里的数字1就是这个栏目的 ID。 - 记下这个 ID。
步骤 2:使用 arclist 标签调用内容
在首页模板文件 (index.htm) 的相应位置,插入以下代码:
{dede:arclist typeid='目标栏目ID' titlelen='40' row='5'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:arclist}
代码详解:
typeid='目标栏目ID': 这是最关键的属性,它告诉 DedeCMS 只从指定的栏目 ID 下获取文章,如果你的“公司新闻”栏目 ID 是2,那么这里就写typeid='2'。titlelen='40': 设置标题的长度,这里设置为40个字符(一个汉字算2个字符),超出的部分会被截断。row='5': 设置要调用的文章数量,这里设置为调用5篇文章。<li>: 列表标签,你可以根据自己网站的样式修改,比如用<div>等。[field:arcurl/]: 文章的链接地址。[field:title/]: 文章的标题。[field:pubdate function="MyDate('Y-m-d',@me)"/]: 文章的发布日期。pubdate是发布时间字段。function="MyDate('Y-m-d',@me)"是一个函数,用来格式化日期。Y-m-d表示年-月-日的格式,你也可以改成Y-m-d H:i来显示具体的小时和分钟。
调用指定栏目及其子栏目的文章列表
你可能希望调用一个顶级栏目(新闻中心”)及其所有子栏目(公司新闻”、“行业动态”)的文章。

(图片来源网络,侵删)
代码实现:
只需要在 arclist 标签中增加一个 topid 属性即可。
{dede:arclist topid='目标顶级栏目ID' titlelen='40' row='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:arclist}
代码详解:
topid='目标顶级栏目ID': 这个属性会调用指定顶级栏目(ID)下的所有一级子栏目的内容。- 如果你的“新闻中心”栏目 ID 是
1,它下面有子栏目2(公司新闻)和3(行业动态),topid='1'就会同时调用栏目2和3下的文章。
- 如果你的“新闻中心”栏目 ID 是
调用指定栏目的文章,并显示缩略图
如果想在列表中显示文章的缩略图,只需在循环内部添加缩略图标签。
代码实现:
{dede:arclist typeid='目标栏目ID' titlelen='40' row='5' imgwidth='120' imgheight='90'}
<li>
<a href="[field:arcurl/]">
<img src="[field:picname/]" alt="[field:title/]" width="120" height="90" />
</a>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:arclist}
代码详解:
imgwidth='120'和imgheight='90': 设置缩略图的显示宽度和高度,DedeCMS 会自动获取文章中上传的缩略图,并按此尺寸缩略显示。[field:picname/]: 文章缩略图的地址。alt="[field:title/]": 为图片添加alt属性,这对SEO(搜索引擎优化)非常重要。
调用指定栏目的单篇内容(比如栏目简介)
你可能只想调用一个栏目的简介或者置顶的一篇文章,这时可以使用 arclist 的 channelid 和 row='1' 属性。
代码实现(调用栏目简介):
{dede:arclist typeid='目标栏目ID' row='1' addfields='description'}
[field:description/]
{/dede:arclist}
代码详解:
typeid='目标栏目ID': 指定栏目。row='1': 只调用一篇。addfields='description': 告诉 DedeCMS 除了默认的字段外,还要额外获取description(栏目简介/这个字段。
使用SQL语句调用(更灵活,适合高级用户)
arclist 标签无法满足你的复杂需求(需要跨表查询、按特定字段排序等),你可以直接使用SQL查询语句。

(图片来源网络,侵删)
⚠️ 警告:直接使用SQL有风险,请确保你的SQL语句正确,避免对数据库造成损害。
代码实现:
{dede:sql sql='SELECT * FROM `dede_archives` WHERE `typeid` = 目标栏目ID ORDER BY `pubdate` DESC LIMIT 0,5'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:sql}
代码详解:
sql='...': 属性内填写你的SQL语句。SELECT * FROMdede_archives`dedearchives是存储文章主表的表名(你的表前缀可能是dede`,也可能是其他,请根据实际情况修改)。WHEREtypeid= 目标栏目ID: 筛选条件,只查找指定栏目ID的文章。ORDER BYpubdateDESC: 按发布日期降序排列(最新的在前)。LIMIT 0,5: 从第0条记录开始,获取5条记录。
[field:arcurl/]: 在sql标签中,[field:arcurl/]的用法和arclist中一样,用于生成文章链接。
总结与建议
| 需求场景 | 推荐方法 | 核心标签/属性 |
|---|---|---|
| 调用单个指定栏目的文章列表 | 方法一 | {dede:aristle typeid='ID'} |
| 调用指定栏目及其所有子栏目的文章 | 方法二 | {dede:arclist topid='ID'} |
| 调用文章列表并显示缩略图 | 方法三 | {dede:arclist ... imgwidth='...'} |
| 调用单篇内容(如栏目简介) | 方法四 | {dede:arclist row='1' addfields='...'} |
复杂查询,arclist 无法满足 |
方法五 | {dede:sql sql='...'} |
对于绝大多数情况,方法一和方法二已经足够使用。{dede:arclist} 功能非常强大,熟练掌握它的各种属性,就能轻松应对首页大部分的内容调用需求。
