description
要调用文章的描述,你只需要在 arclist 标签内使用 description 这个属性即可。

(图片来源网络,侵删)
基础用法:显示完整描述
这是最简单的调用方式,它会显示文章在后台设置的“或“内容描述”字段的完整内容。
语法:
{dede:arclist description='yes'}
<a href='[field:arcurl/]'>[field:title/]</a>
<p>[field:description/]</p>
{/dede:arclist}
参数说明:
description='yes':表示开启调用描述的功能,你也可以写成description='1',效果一样。[field:description/]:这是具体的字段名,用于在模板中输出描述内容。
高级用法:限制描述字数
在实际应用中,我们通常不希望显示一整段冗长的描述,而是希望截取前几十个字符作为摘要,这样页面更美观,这时就需要用到 infolen 和 info 这两个参数。

(图片来源网络,侵删)
语法:
{dede:arclist description='yes' infolen='100' info=''}
<a href='[field:arcurl/]'>[field:title/]</a>
<p>[field:description/]</p>
{/dede:arclist}
参数详解:
| 参数 | 值 | 说明 | 示例 |
|---|---|---|---|
description |
yes 或 1 |
(必须) 声明要调用描述字段。 | description='yes' |
infolen |
数字 | (重要) 设置描述显示的最大长度(单位:字节,一个汉字=2字节,一个字母=1字节)。 | infolen='100' 表示显示最多100个字节。 |
info |
text 或 cut |
(重要) 设置描述的截断方式。 | info='text':默认值,按字数截断,可能会截断一个词。info='cut':按字数严格截断,保证长度正好。 |
完整示例与最佳实践
下面是一个综合了上述所有知识点的完整示例,这是在实际网站开发中最常用的写法。
场景: 在首页调用最新文章列表,每篇文章显示标题、描述)和发布时间。

(图片来源网络,侵删)
<h2>最新文章</h2>
<ul class="article-list">
{dede:arclist
typeid='0'
titlelen='30'
row='10'
orderby='pubdate'
orderway='desc'
description='yes'
infolen='100'
info='cut'
}
<li>
<!-- [field:arcurl/] 是文章链接 -->
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
<!-- [field:description/] 是文章摘要,会被 infolen 和 info 参数控制 -->
<p class="summary">[field:description/]</p>
<!-- [field:pubdate/] 是发布时间,可以格式化 -->
<span class="date">[field:pubdate function="MyDate('Y-m-d', @me)"/]</span>
</li>
{/dede:arclist}
</ul>
代码解释:
typeid='0': 调用所有栏目的文章,如果只想调用某个栏目,填入其ID即可,如typeid='1'。titlelen='30': 标题最多显示30个字节。row='10': 调用10篇文章。orderby='pubdate' orderway='desc': 按发布时间倒序排列(最新的在前)。description='yes' infolen='100' info='cut': 这是调用描述的核心组合,表示“开启描述功能,最多显示100个字节,并严格按字数截断”。[field:pubdate function="MyDate('Y-m-d', @me)"/]: 这是一个函数用法,用于格式化日期,将其显示为年-月-日的格式,更美观。
补充说明:description 字段来源
你需要知道,arclist 调用的 description 字段内容来自哪里,在 DedeCMS 后台发布文章时,有两个地方可以设置描述:
-
推荐):
- 在文章编辑页面的顶部,有一个“输入框。
- 这是
arclist调用的默认来源,强烈建议在这里填写文章的精炼摘要,因为这既可用于列表页显示,也可用于 SEO 的meta description。
-
内容描述(不推荐用于列表):
- 在编辑器下方,有一个“选项”区域,里面有“内容描述”输入框。
- 这个字段通常用于 SEO 的
meta description,摘要”为空,系统会从这里取值。 - 不推荐在
arclist中直接调用这个字段,因为它和description字段是同一个来源,优先级低于“。
常见问题排查
问:为什么我设置了 infolen,但描述显示的长度不对?
答: infolen 的单位是字节,而不是字符,如果你的描述中包含很多英文字母或数字,100个字节可能包含超过50个字符,反之,如果全是汉字,100个字节就是50个汉字,请根据你的内容类型调整这个数值。
问:为什么我的描述后面有 [...] 或者奇怪的字符?
答: 这通常是 infolen 截断位置不当造成的,如果截断点正好在一个 HTML 标签(如 <p>、<em>)的中间,会导致标签无法正确闭合,解决方法:
- 确保后台摘要干净:摘要里最好不要包含复杂的 HTML 代码。
- 使用
info='cut':它能更精确地控制截断,减少出错的概率。 - 手动处理:在截断后手动添加省略号,
[field:description function='cn_substr(@me, 100)'/...]。
希望这份详细的指南能帮助你完全掌握 dede:arclist 调用描述的方法!
