基本语法
{dede:arclist} 的基本结构如下:

(图片来源网络,侵删)
{dede:arclist flag='' typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword='' limit=''}
<a href='[field:arcurl/]'>[field:title/]</a>
<p>[field:info/]</p>
<img src='[field:litpic/]' />
<span>发布时间:[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
<span>点击:[field:click/]</span>
<span>作者:[field:writer/]</span>
<span>来源:[field:source/]</span>
<span>评论:[field:postnum/]</span>
{/dede:arclist}
核心属性(常用参数)
这些属性决定了你调用哪些文章、调用多少、如何排序等。
| 属性名 | 说明 | 示例 |
|---|---|---|
typeid |
(最重要) 指定要调用的栏目ID,多个ID用逗号隔开,如 typeid='1,3',如果为空,则从所有栏目中调用。 |
typeid='2' (调用栏目ID为2下的所有文章) |
row |
(最重要) 调用文章的数量。 | row='10' (调用10篇文章) |
col |
每行显示几条,通常配合 row 使用,用于生成表格式的列表。 |
col='2' (每行显示2条) |
infolen |
简介长度,单位是字节。 | infolen='120' (简介最多显示60个汉字) |
imgwidth |
缩略图宽度。 | imgwidth='200' |
imgheight |
缩略图高度。 | imgheight='150' |
orderby |
(最重要) 文章排序方式,常用值:id(默认,按ID降序), hot(按点击量降序), pubdate(按发布时间降序), sortrank(按文章排序级别降序), rand(随机)。 |
orderby='hot' (按点击量从高到低) |
flag |
(非常重要) 特殊文章标识,用于调用特定状态的文章,多个标识用逗号隔开。 | flag='h' (调用头条文章) flag='c' (调用推荐文章) flag='h,p' (调用头条和推荐文章) |
limit |
限制起始位置和数量,格式为 起始位置,数量。 |
limit='0,5' (从第0条开始,调用5条) limit='5,10' (从第5条开始,调用10条) |
keyword |
按关键词调用,支持多个关键词,用逗号隔开。 | keyword='织梦,DedeCMS' |
channelid |
指定模型ID,默认为1(文章模型)。 | channelid='1' (文章) channelid='20' (如果你的产品模型ID是20) |
subday |
调用多少天内的文章。 | subday='7' (调用最近7天内发布的文章) |
att |
调用带有“附件”属性的文章。 | att='1' (调用有附件的文章) |
noflag |
排除带有特定标识的文章。 | noflag='h' (调用除了头条以外的所有文章) |
idlist |
调用指定ID的文章,多个ID用逗号隔开,这会覆盖 typeid 和 orderby。 |
idlist='10,25,30' (只调用ID为10,25,30的这三篇文章) |
底层字段(循环体内的变量)
这些字段用来在循环中显示文章的具体信息,通过 [field:fieldname/] 来调用。
| 字段名 | 说明 | 示例 |
|---|---|---|
[field:title/] |
<a href="[field:arcurl/]">[field:title/]</a> |
|
[field:arcurl/] |
文章链接 | <a href="[field:arcurl/]">详情</a> |
[field:info/] |
自动截取) | [field:info/] |
[field:litpic/] |
缩略图地址 | <img src="[field:litpic/]" alt="[field:title/]"> |
[field:pubdate/] |
发布时间(时间戳格式) | [field:pubdate function="MyDate('Y-m-d H:i',@me)"/] |
[field:click/] |
点击次数 | [field:click] 次 |
[field:writer/] |
作者 | [field:writer] |
[field:source/] |
来源 | [field:source] |
[field:postnum/] |
评论数 | [field:postnum] 条评论 |
[field:typeid/] |
所属栏目ID | |
[field:typelink/] |
所属栏目链接 | [field:typelink/] |
[field:textlink/] |
<a> 标签形式的标题链接 |
[field:textlink/] |
[field:image/] |
<img> 标签形式的缩略图 |
[field:image/] |
[field:namerule/] |
文章命名规则 | |
[field:filename/] |
文件名(不含路径) |
常用技巧与高级用法
时间格式化
pubdate 默认输出的是时间戳,我们需要用 function 来格式化它。
{dede:arclist row='5'}
<li>
<span>[field:pubdate function="MyDate('m-d',@me)"/]</span>
<a href="[field:arcurl/]" title="[field:title/]">[field:title function="cn_substr(@me,30)"/]</a>
</li>
{/dede:arclist}
MyDate('Y-m-d', @me):Y-m-d是你想要的格式,@me代表当前字段的值(即时间戳)。cn_substr(@me, 30):截取字符串,30是字节数。
调用子栏目文章
typeid 默认只调用指定栏目本身的文章,如果需要同时调用其所有子栏目的文章,需要添加 son 属性。

(图片来源网络,侵删)
{dede:arclist typeid='1' row='10' son='yes'}
<a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}
typeid='1':指定栏目ID为1的栏目。son='yes':同时调用栏目ID为1的所有一级子栏目的文章。
调用特定标识(如“头条”、“推荐”、“幻灯”)
这是 flag 属性的经典用法,在后台发布文章时,你可以设置文章的“属性”(如头条、推荐等)。
<!-- 调用所有头条文章 -->
{dede:arclist flag='h' row='5'}
<a href="[field:arcurl/]" class="headline">[field:title/]</a>
{/dede:arclist}
<!-- 调用所有推荐和头条文章 -->
{dede:arclist flag='h,c' row='8'}
<a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}
h: 头条c: 推荐p: 图片f: 幻灯s: 滚动
循环输出带样式的列表(例如隔行变色)
可以使用 @me 变量和 str_replace 函数来实现。
{dede:arclist row='10' titlelen='40' orderby='pubdate'}
[field:global name=autoindex runphp="yes"]
if ((@me % 2) == 0) {
@me = "<li class='even'>";
} else {
@me = "<li class='odd'>";
}
[/field:global]
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:arclist}
[field:global name=autoindex/]:获取当前循环的序号(从1开始)。runphp="yes":允许在全局标签内运行PHP代码。if ((@me % 2) == 0):判断序号是否能被2整除,从而实现隔行变色。
调用自定义字段
如果你的文章模型有添加自定义字段(video),可以这样调用:
{dede:arclist row='5'}
<a href="[field:arcurl/]">[field:title/]</a>
<!-- 假设自定义字段名为video,类型是文本 -->
视频链接:[field:video/]
<!-- 假设自定义字段名为price,类型是数字 -->
价格:[field:price/] 元
<!-- 如果是编辑器类型的字段,用 function='html2text' 去除HTML标签 -->
详细描述:[field:mydescription function='html2text(@me)'/]
{/dede:arclist}
综合实例
场景: 在首页调用“产品中心”栏目(假设ID为3)下的8个产品,按点击量排序,显示产品图片、标题和简介,标题30字节,简介100字节。

(图片来源网络,侵删)
<div class="product-list">
<h2>热门产品</h2>
<ul>
{dede:arclist typeid='3' row='8' orderby='hot' titlelen='30' infolen='100' imgwidth='150' imgheight='150'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">
<img src="[field:litpic/]" alt="[field:title/]" width="150" height="150">
<h3>[field:title/]</h3>
<p>[field:info/]</p>
</a>
</li>
{/dede:arclist}
</ul>
</div>
{dede:arclist} 是织梦CMS的基石,熟练掌握它的属性和底层字段,你就能构建出绝大多数网站的前端展示效果,核心在于:
- 明确需求:要调哪个栏目(
typeid)?调多少条(row)?怎么排序(orderby)? - 选择属性:根据需求组合使用各种属性,特别是
flag、limit、son等。 - 善用字段:在循环体内用
[field:xxx/]展示你需要的文章信息。 - 灵活运用:结合
function和global标签实现更复杂的功能,如时间格式化、隔行变色等。
