arclist 标签用于在模板中调用文章列表,比如首页、列表页、频道页等,是构建网站内容页面的基石。

arclist 标签的基本语法
arclist 标签的基本结构如下:
{dede:arclist}
<a href='[field:arcurl/]'>[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
{/dede:arclist}
{dede:arclist}和{/dede:arclist}是标签的开始和结束。- 在这两个标签之间,是列表项的HTML模板,你可以自由定义其样式和结构。
[field:xxx/]是字段名,用于获取每篇文章的具体信息,如标题、链接、发布时间等。
常用属性
arclist 标签功能强大,主要通过属性来控制其行为,以下是最常用的一些属性:
核心属性
| 属性名 | 含义 | 示例 |
|---|---|---|
typeid |
指定栏目ID,只调用该栏目及其子栏目的文章。 | typeid='1' (调用ID为1的栏目及其子栏目) |
row |
获取记录条数,即显示多少篇文章。 | row='10' (显示10篇文章) |
orderby |
排序方式,决定文章的排列顺序。 | orderby='pubdate' (按发布时间排序) |
orderway |
排序方向,与 orderby 配合使用。 |
orderway='desc' (降序,最新在前) |
其他常用属性
| 属性名 | 含义 | 示例 |
|---|---|---|
channelid |
指定模型ID,默认为文章模型 (1)。 | channelid='1' |
limit |
起始位置,记录数,比 row 更灵活。 |
limit='0,5' (从第0条开始,取5条) |
idlist |
指定文章ID列表,用逗号隔开。 | idlist='1,3,5,7' (只调用ID为1,3,5,7的这4篇文章) |
flag |
特定属性文章,如头条、推荐、图文等。 | flag='c' (调用头条推荐) |
subday |
指定天数内的文章。 | subday='7' (调用最近7天发布的文章) |
keyword |
包含关键词的文章。 | keyword='织梦,DedeCMS' |
noflag |
排除特定属性的文章。 | noflag='h' (不调用带h属性的文章) |
ismember |
是否调用会员投稿内容。 | ismember='1' (只调用会员投稿) |
att |
调用带有缩略图的文章。 | att='1' |
template |
指定列表模板文件,通常用于特殊需求。 | template='mylist.htm' |
常用字段
在 {dede:arclist}...{/dede:arclist} 循环体内,可以使用 [field:字段名/] 来获取文章信息。
| 字段名 | 含义 | 示例/备注 |
|---|---|---|
[field:title/] |
[field:title/] |
|
[field:arcurl/] |
文章链接 | [field:arcurl/] |
[field:pubdate/] |
发布时间 (时间戳格式) | 通常需要配合函数格式化 |
[field:description/] |
文章摘要 | [field:description/] |
[field:litpic/] |
文章缩略图 | [field:litpic/] |
[field:click/] |
文章点击量 | [field:click/] |
[field:source/] |
文章来源 | [field:source/] |
[field:writer/] |
文章作者 | [field:writer/] |
[field:typelink/] |
栏目链接 | [field:typelink/] |
[field:typename/] |
栏目名称 | [field:typename/] |
综合示例
示例1:首页最新文章列表(最常用)
在首页模板 index.htm 中,调用ID为1的栏目下的10篇最新文章,标题长度限制为30个字符。

<h2>最新文章</h2>
<ul>
{dede:arclist typeid='1' row='10' titlelen='30' orderby='pubdate' orderway='desc'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:arclist}
</ul>
说明:
orderby='pubdate' orderway='desc'是组合使用,表示“按发布时间降序排列”,即最新的在最前面。function="MyDate('Y-m-d', @me)"是对pubdate字段的处理,将时间戳格式化为年-月-日的格式。
示例2:带缩略图的图文列表
调用所有栏目下的5篇带有缩略图的推荐文章。
<div class="pic-list">
{dede:arclist row='5' flag='c' att='1' orderby='pubdate' orderway='desc'}
<div class="pic-item">
<a href="[field:arcurl/]">
<img src="[field:litpic/]" alt="[field:title/]" />
<span class="title">[field:title/]</span>
</a>
</div>
{/dede:arclist}
</div>
说明:
flag='c'表示调用推荐(c代表“推荐”,h代表“头条”,p代表“图片”等)。att='1'表示只调用有缩略图的文章。[field:litpic/]是缩略图的地址。
示例3:指定多个栏目
调用ID为1和3的两个栏目下的文章。
{dede:arclist typeid='1,3' row='8'}
<a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}
示例4:排除某个栏目
调用除了ID为2的栏目之外的所有栏目的文章。
{dede:arclist typeid='all' notypeid='2' row='10'}
<a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}
进阶技巧
使用PHP代码 (php)
如果需要在列表中执行一些复杂的逻辑,可以使用 注意: 在 问题1: 问题2:文章列表显示为空? 问题3:时间格式不对? 希望这份详细的指南能帮助你完全掌握 DedeCMS 的文章列表标签!php
{dede:arclist row='5'}
{dede:php}
$this->Fields['title'] = mb_substr($this->Fields['title'], 0, 20, 'utf-8') . '...';
{/dede:php}
<a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}
php 标签在某些安全设置较高的环境中可能被禁用。使用自定义函数
pubdate 示例中,我们已经使用了 function 属性来调用系统自带的 MyDate 函数,你也可以在 include/extend.func.php 文件中自定义函数,然后在标签中调用。
常见问题与解决方案
typeid 为什么不生效?
typeid='1' 会调用ID为1的栏目及其所有子栏目的文章,如果只想调用ID为1的栏目本身,请使用 typeid='1,0' (后面的 0 是一个特殊值,表示不调用子栏目)。
flag='c'(推荐)和 ismember='1'(会员投稿),但该栏目下没有符合条件的文章。att='1' 但文章没有上传缩略图,则该文章不会被调用。
function="MyDate('Y-m-d', @me)",如果需要其他格式,修改 MyDate 里的参数即可,'Y-m-d H:i:s'。
