arclist 标签主要用于获取并列表显示文章、图集等文档内容,相当于一个万能的内容调用器,无论是在首页、列表页还是内容页,你都可以用它来调用其他栏目的文章、热门文章、推荐文章等。

(图片来源网络,侵删)
基本语法
arclist 标签的基本语法结构如下:
{dede:arclist}
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
<p>[field:description function="cn_substr(@me, 100)"/]...</p>
{/dede:arclist}
{dede:arclist}: 开始标签,用于定义调用参数。- 循环体内的内容,即每一条文章的显示样式。
{/dede:arclist}: 结束标签。
循环体内通过 [field:字段名/] 或 [field:字段名 function="处理函数"/] 的方式来获取文章的各个字段信息。
核心参数说明
arclist 的强大之处在于其丰富的参数,下面我将参数分为几类,方便你理解和查找。
栏目限制参数
这些参数用于控制从哪些栏目中获取文章。

(图片来源网络,侵删)
| 参数 | 说明 | 示例 |
|---|---|---|
typeid |
指定栏目ID,可以填写单个ID,如 1;也可以填写多个ID,用逗号隔开,如 1,2,3;还可以用 top 表示顶级栏目。 |
typeid='1' (调用栏目ID为1的文章) |
typeid |
排除指定栏目ID,在 typeid 后面加上 not,表示调用除了这些栏目之外的所有文章。 |
typeid='not1,5' (调用除了栏目ID为1和5之外的文章) |
nativeplace |
指定稿件来源(地域),很少使用。 | nativeplace='1' |
channel |
模型ID。1 代表普通文章,2 代表图集,3 代表下载等。 |
channel='1' (只调用普通文章) |
数量与排序参数
这些参数控制调用的文章数量和显示顺序。
| 参数 | 说明 | 示例 |
|---|---|---|
row |
调用文章的数量,默认为 10 条。 |
row='5' (只显示5条) |
infolen |
简介长度,单位是字节。 | infolen='200' (简介最多显示200个字节) |
orderway |
排序方式。desc 为降序(默认),asc 为升序。 |
orderway='asc' (按发布时间升序排列) |
orderby |
排序字段,常用值:id(文章ID), sortrank(权重/置顶), pubdate(发布时间), click(点击量), arcrank(文章级别)。 |
orderby='click' (按点击量从高到低排序) |
subday |
调用指定天数内发布的文章。 | subday='7' (只调用最近7天内发布的文章) |
keyword |
按关键词调用文章,多个关键词用逗号隔开。 | keyword='技术,教程' (调用标题或关键词包含“技术”或“教程”的文章) |
条件过滤参数
这些参数用于对文章进行筛选,如只调用推荐文章、只调用有缩略图的文章等。
| 参数 | 说明 | 示例 |
|---|---|---|
flag |
特殊属性标志,常用值:h (头条), c (推荐), p (图片), f (幻灯), s (跳转), a (特荐), b (滚动), j (加粗), 1 (列表式),多个值可组合,如 hc 表示头条和推荐。 |
flag='h' (只调用头条文章) |
ismake |
是否生成静态文件。1 是,0 否。 |
ismake='1' (只调用已生成静态文件的文章) |
channeltype |
频道类型。1 表示系统频道,-1 表示外部频道。 |
channeltype='1' |
arcrank |
文章级别。-1 表示所有级别(默认),0 表示公开,1 表示会员级别等。 |
arcrank='0' (只调用公开级别的文章) |
att |
是否有附件。1 是,0 否。 |
att='1' (只调用带有附件的文章) |
imgwidth |
缩略图宽度。 | imgwidth='200' |
imgheight |
缩略图高度。 | imgheight='150' |
高级功能参数
| 参数 | 说明 | 示例 |
|---|---|---|
limit |
分页起始与结束,格式为 "起始条数,结束条数"。row 参数会被忽略。 |
limit='0,5' (从第0条开始,共显示5条,等同于 row='5') |
noflag |
排除特殊属性,与 flag 相反,排除掉带有这些标志的文章。 |
noflag='h' (调用除了头条之外的所有文章) |
ismember |
是否会员内容。1 是,0 否。 |
ismember='1' (只调用会员才能查看的内容) |
keyword |
按关键词调用。 | keyword='织梦' (调用标题或关键词包含“织梦”的文章) |
parttype |
指定获取的是文章的哪个部分。body (正文), text (纯文本正文)。 |
parttype='text' |
常用调用示例
示例1:调用指定栏目的最新文章
调用栏目ID为 1 的最新5篇文章,标题长度限制为30个字。
{dede:arclist typeid='1' row='5' titlelen='30'}
<li><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></li>
{/dede:arclist}
示例2:调用全站的头条文章
调用全站所有被设为“头条”的文章,按点击量排序,显示10条。
{dede:arclist flag='h' orderby='click' row='10'}
<li><a href="[field:arcurl/]" target="_blank">[field:title/]</a></li>
{/dede:arclist}
示例3:调用带有缩略图的文章
调用栏目ID为 2 和 3 的文章,只显示有缩略图的,并显示缩略图、标题和简介。
{dede:arclist typeid='2,3' row='4' imgwidth='120' imgheight='90'}
<div class="item">
<a href="[field:arcurl/]"><img src="[field:litpic/]" alt="[field:title/]" width="120" height="90" /></a>
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
<p>[field:description function='cn_substr(@me, 80)'/]...</p>
</div>
{/dede:arclist}
注意:[field:litpic/] 用于获取文章的缩略图地址。
示例4:排除某个栏目并按权重排序
调用除了栏目ID为 5 之外的所有文章,按“权重”(sortrank)降序排列,显示8条。
{dede:arclist typeid='not5' orderby='sortrank' orderway='desc' row='8'}
<a href="[field:arcurl/]" title="[field:title function='htmlspecialchars(@me)'/]">[field:title/]</a>
{/dede:arclist}
示例5:调用指定时间段内的热门文章
调用最近7天内发布的、点击量最高的5篇文章。
{dede:arclist subday='7' orderby='click' row='5'}
<a href="[field:arcurl/]">[field:title/]</a> ([field:click/]次点击)
{/dede:arclist}
注意:[field:click/] 用于获取文章的点击量。
常用字段调用
在 {dede:arclist} 循环体内,你可以使用以下常用字段:
| 字段名 | 说明 |
|---|---|
[field:id/] |
文章ID |
[field:title/] |
|
[field:arcurl/] |
文章链接 |
[field:litpic/] |
缩略图地址 |
[field:pubdate/] |
发布时间(时间戳) |
[field:description/] |
文章简介 |
[field:click/] |
点击量 |
[field:writer/] |
作者 |
[field:source/] |
来源 |
[field:typename/] |
所属栏目名称 |
处理函数:很多时候,需要对字段值进行格式化处理,这时就需要使用 function。
- 日期格式化:
[field:pubdate function='MyDate("Y-m-d H:i", @me)'/]MyDate是DedeCMS的日期处理函数。"Y-m-d H:i"是你想要的日期格式。@me代表当前字段的原始值。
- 截取字符串:
[field:title function='cn_substr(@me, 20)'/]cn_substr是DedeCMS的截取字符串函数,支持中英文混合。20是要截取的长度。
- 去除HTML标签:
[field:description function='htmlspecialchars(strip_tags(@me))'/]strip_tags去除HTML标签。htmlspecialchars转义HTML特殊字符,防止XSS攻击。
重要注意事项
- 性能优化:
arclist是一个非常消耗数据库资源的标签,尤其是在首页或调用大量数据时,尽量避免在首页使用无限制的arclist调用。 limitvsrow:当需要分页或指定起始位置时,使用limit参数,如果只需要固定数量,使用row即可。flag参数的灵活性:flag参数非常强大,可以组合使用,如flag='h,c'表示同时是头条和推荐。- 官方文档:DedeCMS的官方文档是最好的参考资料,虽然可能有些陈旧,但大部分参数和说明依然是准确的。
希望这份详细的 arclist 参数指南能帮助你更好地使用 DedeCMS!
