使用 {dede:arclist} 标签(最常用、最推荐)
这是最灵活、最常用的方法,可以完美实现你的需求。{dede:arclist} 本身就可以根据当前栏目自动获取文章列表。

(图片来源网络,侵删)
基础代码
{dede:arclist titlelen='30' row='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:arclist}
代码详解
{dede:arclist ...}: 这是调用文章列表的起始标签,len='30'`: 设置文章标题的长度,最多显示30个字符,如果标题过长,会被截断。row='10': 设置调用文章的数量,这里调用10篇。[field:arcurl/]: 文章的完整链接。[field:title/]: 文章的标题。[field:pubdate ...]: 文章的发布日期。function="MyDate('Y-m-d', @me)": 这是一个自定义函数,用于格式化日期。@me代表原始的时间戳,'Y-m-d'是你想要的日期格式(2025-10-27)。
</li>和</a>等: 是你自己的 HTML 结构,用于美化列表显示。
核心技巧:如何确保只调用“当前栏目”的文章?
默认情况下,{dede:arclist} 在一个栏目页(如 plus/list.php?cid=XX)中使用时,会自动只调用该栏目的文章,你不需要做任何额外的设置。
示例:在栏目列表页模板 list_article.htm 中使用
假设你的栏目列表页模板是 list_article.htm,你只需要将上面的代码放入这个模板文件的循环部分即可。
<ul class="article-list">
{dede:arclist titlelen='30' row='10'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
<span class="date">[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:arclist}
</ul>
使用 {dede:list} 标签(仅用于栏目列表页)
{dede:list} 是一个专门为“栏目列表页”设计的标签,功能比 {dede:arclist} 更简单,但限制也更多。

(图片来源网络,侵删)
基础代码
{dede:list pagesize='10'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:list}
代码详解
{dede:list ...}: 调用当前栏目文章列表的起始标签。pagesize='10': 设置每页显示的文章数量,相当于{dede:arclist}的row属性。[field:arcurl/],[field:title/],[field:pubdate/]: 与arclist中的用法完全相同。
{dede:list} 与 {dede:arclist} 的关键区别
| 特性 | {dede:list} |
{dede:arclist} |
|---|---|---|
| 使用场景 | 仅限于栏目列表页 (list_*.htm) |
非常灵活,可用在首页、栏目页、文章页、自定义页面等任何地方 |
| 分页 | 自动生成,无需手动调用 | 需要手动调用 {dede:pagelist listitem='index pre pageno next end '/} |
| 功能 | 较少,主要用于列表 | 非常多,支持按时间、点击量、ID等多种排序,支持指定栏目等 |
| 性能 | 稍快 | 稍慢,但功能强大 |
如果你只在栏目列表页调用文章,使用 {dede:list} 更简单,如果你需要在其他地方(如首页、文章内容页)调用当前栏目的文章,或者需要更复杂的排序和筛选,必须使用 {dede:arclist}。
在首页或内容页调用当前栏目的文章
这是一个非常经典的需求,比如在文章页的侧边栏显示“本栏目最新文章”,这时,你需要明确告诉 {dede:arclist} 要调用哪个栏目的文章。
关键属性:typeid
typeid 属性用于指定要调用的栏目ID。
场景:在文章内容页 (article_article.htm) 调用当前文章所在栏目的最新文章

(图片来源网络,侵删)
<h3>本栏目最新文章</h3>
<ul>
{dede:arclist titlelen='26' row='8' typeid=''}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{dede:arclist}
</ul>
核心技巧:如何获取当前栏目的ID?
页,当前栏目的ID可以通过全局变量 typeid 获取,我们需要在 typeid 属性中使用这个变量。
正确的写法:
<h3>本栏目最新文章</h3>
<ul>
{dede:arclist titlelen='26' row='8' typeid='~typeid~'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{dede:arclist}
</ul>
为什么是 ~typeid~?
typeid是 DedeCMS 模板引擎的一个特殊语法,它会自动将变量值解析后填入。- 在
{dede:arclist}等列表标签中,使用typeid='~typeid~'就相当于告诉系统:“这里的栏目ID,请使用当前页面环境中的typeid变量值”。 typeid变量在文章页和栏目页都是自动定义好的,包含了当前栏目的ID。
高级技巧:{dede:arclist} 常用属性总结
| 属性名 | 说明 | 示例 |
|---|---|---|
typeid |
指定栏目ID,多个ID用逗号隔开,不指定或为空时,表示当前栏目。 | typeid='1,3,5' |
row |
调用文章数量 | row='10' |
infolen |
内容简介长度 | infolen='120' |
orderby |
排序方式,可以是 pubdate (发布时间), click (点击量), id (ID), arcrank (文档排序级别) 等 |
orderby='click' (按点击量从高到低) |
orderway |
排序方式。desc (降序) 或 asc (升序) |
orderway='desc' |
channelid |
指定模型ID,默认为1(文章) | channelid='1' |
subday |
调用N天内的文章 | subday='7' (调用一周内发布的文章) |
keyword |
关键词调用,多个关键词用逗号隔开 | keyword='DedeCMS,教程' |
总结与最佳实践
-
*在栏目列表页 (`list_.htm`)**:
- 首选
{dede:list}:代码最简洁,专为列表页设计。 - 次选
{dede:arclist}:功能更强大,如果需要复杂排序或额外功能,用它。
- 首选
-
在首页或其他页面:
- 必须使用
{dede:arclist}。 - 如果要调用指定栏目的文章,务必使用
typeid='栏目ID'属性。
- 必须使用
-
*页 (`article_.htm`) 调用“本栏目”文章**:
- 必须使用
{dede:arclist}。 - 使用
typeid='~typeid~'来获取当前文章所在的栏目ID。
- 必须使用
希望这份详细的指南能帮助你轻松掌握在 DedeCMS 中调用当前栏目文章的各种方法!
