推荐调用文章摘要(最佳实践)
这是最标准、最推荐的做法,DedeCMS在后台发布文章时,有一个专门的“字段,就是为了这个目的设计的。

优点:
- 加载速度快:摘要字段内容短,首页数据量小。
- SEO友好:摘要可以精确控制首页显示的内容,避免无关文字稀释关键词。
- 可控性强:你可以手动为每篇文章编写最吸引人的摘要。
实现步骤:
-
在后台填写摘要: 登录DedeCMS后台,进入“[核心] -> [内容模型管理]”,点击你正在使用的模型(通常是“文章”),确保勾选了“自动提取摘要”或手动填写摘要字段。
-
修改首页模板: 打开你的首页模板文件
index.htm,找到调用文章列表的标签{dede:arclist}。
(图片来源网络,侵删)在
{dede:arclist}标签内,使用[field:info/]来调用摘要。示例代码:
<ul> {dede:arclist row='10' titlelen='50' orderby='pubdate'} <li> <a href="[field:arcurl/]">[field:title/]</a> <p>[field:info/]</p> </li> {/dede:arclist} </ul>代码解释:
{dede:arclist row='10' ...}:调用10篇文章。[field:arcurl/]:文章链接。[field:title/]。[field:info/]:
自动截取正文前N个字符(最常用)
如果你不想手动填写摘要,可以设置DedeCMS在保存文章时自动从正文中提取一部分作为摘要,或者在首页直接截取正文。

方案A:后台自动生成摘要(推荐)
- 进入后台“[系统] -> [系统基本参数] -> [核心设置]”。
- 找到 “自动摘要长度” 选项,设置一个合适的字数(
200)。 - 找到 “自动提取摘要” 选项,选择 “是”。
- 保存后,以后发布的文章会自动生成摘要,首页调用方式同 方法一,使用
[field:info/]。
方案B:首页模板直接截取(灵活性高)
如果你不想影响后台数据,只想在首页模板里进行截取,可以使用DedeCMS的 cn_substr 函数。
实现步骤:
- 修改首页模板
index.htm。 - 在
{dede:arclist}标签内,使用[field:description function='cn_substr(@me,100)'/]来截取“简介”字段的前100个字符,或者直接截取正文[field:body function='cn_substr(@me,200)'/]。
示例代码(截取简介):
<ul>
{dede:arclist row='10' titlelen='50' orderby='pubdate'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<p>[field:description function='cn_substr(@me,100)'/]...</p>
</li>
{/dede:arclist}
</ul>
示例代码(截取正文):
警告: 直接截取
[field:body](正文) 会包含大量HTML标签,可能导致显示错乱,强烈建议先过滤标签再截取。
<ul>
{dede:arclist row='10' titlelen='50' orderby='pubdate'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<!--
1. @me : 表示当前字段的原始值,即[field:body]的全部内容
2. ereg_replace('<[^>]+>','',@me) : 正则表达式,删除所有HTML标签
3. cn_substr(处理后的文本, 200) : 截取前200个字符
-->
<p>[field:body function='cn_substr(ereg_replace("<[^>]+>", "", @me), 200)'/]...</p>
</li>
{/dede:arclist}
</ul>
调用自定义字段(高级用法)
结构比较特殊,需要调用特定位置的内容,可以使用自定义字段。
实现步骤:
-
添加自定义字段: 后台“[核心] -> [内容模型管理] -> [添加新字段]”,添加一个字段名为
myintro,字段别名为“自定义简介”。 -
在后台填写内容: 发布文章时,在“自定义简介”这一栏填写你想要在首页显示的内容。
-
在首页模板调用: 使用
[field:myintro/]来调用。
示例代码:
<ul>
{dede:arclist row='10' titlelen='50' orderby='pubdate'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<p>[field:myintro/]</p>
</li>
{/dede:arclist}
</ul>
总结与对比
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 调用摘要 | 最佳实践,速度快,SEO好,可控性强 | 需要手动或在后台设置 | 所有标准网站,特别是注重SEO和性能的站点。 |
| 方法二A:后台自动摘要 | 自动化,无需手动操作,首页调用简单 | 摘要可能不够精准,有时会截断不完整 | 文章量大,编辑人员比较繁忙,对摘要要求不高的站点。 |
| 方法二B:首页直接截取 | 灵活性最高,无需修改后台设置 | 代码稍复杂,直接截取正文可能有标签问题 | 需要临时修改首页显示效果,或摘要字段未被使用的情况。 |
| 调用自定义字段 | 结构化,内容可控,用途广泛 | 需要提前规划并添加字段,不够通用 | 模块,如产品介绍、人物专访等有固定格式的内容。 |
额外提示:去除截取后的尾部标点
使用 cn_substr 截取后,可能会出现“XXX。”或“XXX,”这样不完整的句子,可以使用DedeCMS的 trim 函数配合 str_replace 来优化。
<p>
[field:body function='str_replace(array("。",",","!","?"), "", trim(cn_substr(ereg_replace("<[^>]+>", "", @me), 200))')/]
...
</p>
这段代码会先截取,然后去除首尾空格,最后把句号、逗号等标点符号替换掉,使结尾更干净。
最终建议: 对于绝大多数网站,强烈推荐使用“方法一”或“方法二A”,这是DedeCMS设计的标准流程,能最好地平衡性能、SEO和内容管理效率。
