核心标签
无论使用哪种方法,核心的标签都是 {dede:arclist}。

最简单、最直接的方法(推荐)
这是最常用、最简洁的方法,适用于绝大多数场景,比如在栏目列表页(list_*.php)或首页(index.php)调用当前栏目的子栏目文章。
适用场景:
- 在当前栏目页(如
list_1.php)调用该栏目的文章。 - 在首页(
index.php)调用指定栏目(如栏目ID为1)的文章。 - 在首页调用当前栏目(通过
typeid自动获取)的文章。
代码示例:
{dede:arclist row='10' titlelen='30'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:arclist}
代码解析:

{dede:arclist}:文章列表调用开始标签。row='10':表示获取10条文章记录,你可以根据需要修改这个数字,len='30'`:表示文章标题的长度,最多显示30个字符(一个汉字算一个字符)。[field:arcurl/]:文章的链接地址。[field:title/]:文章的标题。[field:pubdate function="MyDate('Y-m-d',@me)"/]:文章的发布日期。pubdate是发布时间的字段。function="MyDate('Y-m-d',@me)"是一个自定义函数,用于将时间戳格式化为年-月-日的格式,你也可以使用MyDate('m-d', @me)来显示月-日。
{/dede:arclist}:文章列表调用结束标签。
关键点:当 {dede:arclist} 标签被放在一个栏目模板(如 list_article.htm)中时,它会自动识别当前所在的栏目,无需任何额外参数即可调用该栏目的文章。
使用 typeid 参数明确指定栏目
如果你想在非当前页面(比如首页)调用某个特定栏目的文章,或者你想强制调用某个栏目的文章,就需要使用 typeid 参数。
适用场景:
- 在首页调用“公司新闻”栏目(假设其ID为2)的文章。
- 在一个子栏目页调用其父栏目的文章。
代码示例:

<!-- 假设我们要调用栏目ID为 2 的文章 -->
{dede:arclist typeid='2' row='8' titlelen='20'}
<li>
<span>[field:pubdate function="MyDate('m-d',@me)"/]</span>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
</li>
{/dede:arclist}
代码解析:
typeid='2':这是最关键的参数,它明确告诉 DedeCMS 要从栏目ID为2的栏目中获取文章,你可以将2替换成任何你想要调用的栏目ID。- 你可以在后台“栏目管理”中查看每个栏目的ID。
调用当前栏目及其子栏目的文章(常用)
有时候我们希望一个栏目页不仅显示本栏目的文章,还显示其所有下级栏目的文章,这可以通过 typeid 和 son 参数配合实现。
适用场景:
- 制作一个“产品中心”栏目,该栏目下有“产品A”、“产品B”等子栏目,在“产品中心”的列表页,希望同时展示所有产品的文章。
代码示例:
{dede:arclist typeid='当前栏目ID' row='15' titlelen='40' son='yes'}
<dl>
<dt><a href="[field:arcurl/]">[field:title/]</a></dt>
<dd>[field:description function='cn_substr(@me, 100)'/]...</dd>
</dl>
{/dede:arclist}
代码解析:
typeid='当前栏目ID':这里需要填写当前栏目的ID,如果“产品中心”栏目的ID是5,那么这里就写typeid='5'。son='yes':这个参数的作用是“包含子栏目”,设置了它,typeid参数指定的栏目及其所有下级栏目的文章都会被调用。
如何获取“当前栏目ID”?
你可以在模板文件中直接写死ID,也可以通过 DedeCMS 的全局变量 {dede:field.id/} 来动态获取,这样模板更具通用性。
<!-- 使用全局变量动态获取当前栏目ID -->
{dede:arclist typeid='{dede:field.id/}' row='15' son='yes'}
<!-- ... -->
{/dede:arclist}
常用属性和字段扩展
{dede:arclist} 非常灵活,可以添加很多属性来控制输出内容。
常用属性:
| 属性名 | 说明 | 示例 |
|---|---|---|
row |
调用文章数量 | row='10' |
infolen |
内容简介长度 | infolen='100' |
orderby |
排序方式,默认为 pubdate(按发布时间) |
orderby='hot' (按点击量), orderby='commends' (按推荐), orderby='id' (按文章ID) |
orderway |
排序方式,desc(降序,默认)或 asc(升序) |
orderway='asc' |
channelid |
指定频道ID,默认为1(文章) | channelid='1' |
limit |
限制起始位置和数量,如 limit='0,10' (从第0条开始,取10条) |
limit='10,5' (从第10条开始,取5条) |
常用字段(使用 [field:xxx/] 调用):
| 字段名 | 说明 |
| :--- | :--- | | 文章标题 |
| arcurl | 文章链接 |
| pubdate | 发布时间(时间戳) |
| description | 需要在后台“文档关键词维护”中设置) |
| litpic | 文章缩略图 |
| click | 文章点击量 |
| typename | 所属栏目名称 |
| id | 文章ID |
综合示例:
{dede:arclist
row='6' len='40'
orderby='click'
orderway='desc'
typeid='2'
channelid='1'
infolen='100'
}
<div class="news-item">
<a href="[field:arcurl/]" class="thumb">
<img src="[field:litpic/]" alt="[field:title/]" />
</a>
<div class="news-info">
<h3><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h3>
<p class="summary">[field:description/]</p>
<div class="meta">
<span class="date">[field:pubdate function="MyDate('Y-m-d',@me)"]</span>
<span class="click">阅读([field:click/])</span>
</div>
</div>
</div>
{/dede:arclist}
这个示例调用了栏目ID为2的、点击量最高的6篇文章,并显示了缩略图、标题、日期和点击量。
| 需求 | 推荐方法 | 关键代码 |
|---|---|---|
| 在当前栏目页调用本栏文章 | 方法一 | {dede:arclist row='10'} |
| 在任意位置调用指定栏目文章 | 方法二 | {dede:arclist typeid='2' row='10'} |
| 调用当前栏目及其所有子栏目文章 | 方法三 | {dede:arclist typeid='{dede:field.id/}' son='yes'} |
| 需要更复杂的排序和显示 | 方法四 | 结合 orderby, limit, litpic 等属性和字段 |
希望这份详细的指南能帮助你熟练地在 DedeCMS 中调用文章列表!
