arclist 标签概述
arclist 是“文章列表”的缩写,它是织梦CMS中最常用、最强大的列表标签之一,它的主要作用是在模板中调用一个文章列表,这个列表可以来自任意指定的栏目、频道,并且可以非常灵活地控制列表的样式、数量、排序方式以及显示哪些字段信息。

基本语法结构:
{dede:arclist flag='' typeid='' row='' col='' titlelen='' infolen='' keyword='' orderby='' orderway='' }
<!-- 循环体内的HTML和子标签 -->
{/dede:arclist}
infolen 属性详解
infolen 是 arclist 标签的一个关键属性,它的作用是控制文章摘要(或称简介、内容概要)的显示长度。
infolen 的作用
- 功能:截取文章正文的开始部分,作为摘要显示在列表中。
- 截取依据:它默认是按字符数来截取的,而不是按单词,来源**:它截取的是文章
body字段(即文章正文内容)的开头部分,而不是文章的description(字段。
infolen 的语法
infolen='数字'
这里的 数字 代表你希望显示的摘要字符数量。infolen='200' 表示显示文章正文的前200个字符。
infolen 与 description 字段的区别(非常重要!)
很多新手会混淆 infolen 和文章的 description 字段,理解它们的区别是灵活运用织梦的关键:

| 特性 | infolen 属性 | description 字段 |
| :--- | :--- | :--- |来源 | 文章的 body(正文)字段 | 文章的 description(字段 |
| 如何设置 | 在模板标签中通过 infolen='数字' 动态截取 | 在后台发布文章时,手动填写“内容 |
| 优点自动化无需手动为每篇文章写摘要,统一性所有摘要长度一致。 | - 精准性可以手动控制摘要内容,突出重点,SEO友好摘要可以直接用作<meta name="description">。 |
| 可能不精炼截取的开头可能不是文章的精华,可能截断不完整容易在句子中间断开。 | - 耗时每篇文章都需要手动填写,容易遗漏**:如果忘记填,则显示为空。 |
如何选择?
- 如果你的网站文章数量庞大,且对摘要的精准度要求不高,希望自动化生成,使用
infolen非常方便。 - 如果你的网站文章较少,或者对SEO要求很高,希望每篇文章的摘要都精准、有吸引力,建议在后台手动填写
description字段,然后在模板中调用它。
在模板中如何使用 infolen
示例1:基本用法
调用10篇推荐文章(flag='c'),每篇文章显示标题和前100个字符的摘要。
<h3>推荐文章</h3>
<ul>
{dede:arclist flag='c' row='10' titlelen='30' infolen='100'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<p>[field:info/]</p>
</li>
{/dede:arclist}
</ul>
解释:

flag='c':调用推荐文章。row='10':显示10条记录,len='30'`:标题最多显示30个字符(超出部分用...代替)。infolen='100':摘要截取100个字符。[field:arcurl/]:文章链接的子标签。[field:title/]的子标签。[field:info/]:这是调用infolen生成的摘要内容的关键子标签,无论你在arclist标签中设置了infolen的值是多少,最终都要通过[field:info/]来输出。
示例2:结合 description 字段(更专业的做法)
这是一个更常见的实践:优先使用手动填写的 description,description 为空,则再使用 infolen 自动截取。
这可以通过织梦的默认函数 cn_substr() 和 trim() 结合 if 条件判断来实现。
<h3>最新文章</h3>
<ul>
{dede:arclist row='5' titlelen='40'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
<div class="summary">
<!-- 如果description不为空,则显示description,否则截取body -->
[field:description runphp='yes']
if(@me != '') @me = '<span class="manual-desc">@me</span>';
else @me = '';
[/field:description]
[field:info function='(strlen(@me)>100 ? cn_substr(@me,100)."..." : @me)'/]
</div>
</li>
{/dede:arclist}
</ul>
解释:
[field:description runphp='yes']:我们让description字段支持PHP代码。if(@me != ''):@me在这里代表description字段的值,判断如果摘要不为空...@me = '<span class="manual-desc">@me</span>';:...就给摘要外面加一个<span>标签(方便用CSS区分),并保留其内容。else @me = '';:...如果为空,则设置为空字符串。[field:info function='...'/]:这里使用了function对info(即infolen的结果)进行处理。strlen(@me)>100:判断摘要长度是否超过100。cn_substr(@me,100):如果超过,则用织梦自带的截取函数截取前100个字符。- 并在末尾加上省略号。
@me:如果没超过,则原样输出。
这个组合用法非常强大,既保证了有手动摘要时的精准性,又避免了忘记写摘要时的空白。
总结与最佳实践
infolen的核心:是arclist标签的一个属性,用于自动截取文章正文作为摘要,通过子标签[field:info/]输出。infolenvsdescription:一个是自动截取(从body),一个是手动填写(description字段),两者功能相似,但应用场景不同。- 推荐用法:
- 对于内容量大、更新频繁的网站(如资讯、博客),直接使用
infolen可以极大提高效率。 - 对于重要栏目、SEO优化的网站,建议优先使用
description字段,可以通过在模板中结合runphp和if判断,实现“有description则显示description,无则用infolen”的优雅降级方案,这是最专业和稳妥的做法。
- 对于内容量大、更新频繁的网站(如资讯、博客),直接使用
掌握 arclist 和 infolen 的使用,是熟练驾驭织梦CMS进行模板开发的基础,希望这个详细的解释能帮助你更好地理解和使用它们!
