调用文章自动摘要(最简单、最常用)
这是最基础也是最常用的方法,DedeCMS 在发布文章时,文章内容”编辑框下方有“自动生成摘要”的勾选,系统就会自动从文章内容开头截取一段文字作为简介。

适用场景:不需要手动填写简介,希望直接从文章内容中提取。
调用代码:
页模板(通常是 article_article.htm)中,使用 {dede:field.description/} 标签即可。
<div class="intro">
<h3>文章简介</h3>
{dede:field.description function='htmlspecialchars(@me)'/}
</div>
代码解析:
{dede:field.description/}:这是调用文章简介字段的核心标签。function='htmlspecialchars(@me)':这是一个非常重要的函数,它会把简介中的 HTML 特殊字符(如<,>,&, )转换成 HTML 实体,这可以有效防止 XSS(跨站脚本)攻击,并确保简介在页面上正确显示,而不是被浏览器解析成 HTML 代码。强烈建议加上此函数。
手动填写简介(推荐,更灵活)
为了获得更好的 SEO 效果和内容控制,最佳实践是手动填写简介,在发布或编辑文章时,在后台的“高级选项”或“文档选项”里,可以手动填写“内容简介”。

适用场景:希望为每篇文章撰写一个独立、精炼、适合 SEO 的简介。
调用代码:
与方法一完全相同,因为 {dede:field.description/} 标签优先读取手动填写的简介,如果没有手动填写,则会读取自动生成的摘要。
<div class="intro">
<h3>文章简介</h3>
{dede:field.description function='htmlspecialchars(@me)'/}
</div>
优点:

- SEO 友好:可以专门为搜索引擎优化简介内容。
- 内容可控:避免自动截取可能出现的语句不通或内容不当的问题。
- 格式自由:简介可以是一个完整的段落,而不是截取的半句话。
调用文章内容的前 N 个字符(按需截取)
如果你不使用 DedeCMS 的自动摘要功能,或者想简介的长度完全由模板控制,可以直接从文章内容中截取指定长度的字符。
适用场景:需要简介长度完全统一,或者不希望依赖后台的自动摘要功能。
调用代码:
使用 {dede:field.body/} 标签配合 function 属性来实现。
<div class="intro">
<h3>文章简介</h3>
{dede:field.body function='cn_substr(@me, 200)'/}
</div>
代码解析:
{dede:field.body/}:调用文章的完整内容。function='cn_substr(@me, 200)':这是一个强大的 PHP 函数调用。cn_substr是 DedeCMS 自定义的函数,专门用于处理中文字符串,确保不会出现乱码。@me:代表当前标签的原始值,在这里就是{dede:field.body/}的内容,即文章全文。200:表示截取前 200 个字符,你可以根据需要修改这个数字。
调用文章内容并去除 HTML 标签(更纯净的简介)
方法三虽然能截取字符,但如果文章开头有图片、<p> 标签等 HTML 代码,也会被截取进去,导致简介不纯净,我们可以通过组合函数来解决这个问题。
适用场景:希望简介是纯文本,没有任何 HTML 标签,长度可控。
调用代码:
使用 htmlspecialchars、strip_tags 和 cn_substr 三个函数组合。
<div class="intro">
<h3>文章简介</h3>
{dede:field.body function='htmlspecialchars(cn_substr(strip_tags(@me), 200))'/}
</div>
代码解析:
strip_tags(@me):首先执行strip_tags函数,它会移除@me)中的所有 HTML 和 PHP 标签,只留下纯文本。cn_substr(..., 200):然后对处理后的纯文本执行cn_substr函数,截取前 200 个字符。htmlspecialchars(...):对最终得到的纯文本简介执行htmlspecialchars函数,进行转义,确保安全显示。
执行顺序:从右到左,即先 strip_tags,再 cn_substr,htmlspecialchars。
总结与推荐
| 方法 | 核心代码 | 优点 | 缺点 | 推荐度 |
|---|---|---|---|---|
| 方法一 | {dede:field.description/} |
简单,依赖系统功能 | 自动摘要可能不理想,内容不可控 | ★★★☆☆ |
| 方法二 | {dede:field.description/} |
SEO友好,内容可控,灵活 | 需要手动填写 | ★★★★★ |
| 方法三 | {dede:field.body function='cn_substr(...)'} |
长度完全由模板控制 | 可能包含HTML标签,简介不纯净 | ★★★☆☆ |
| 方法四 | {dede:field.body function='...strip_tags...'} |
纯净的纯文本,长度可控 | 代码稍复杂,完全依赖模板截断 | ★★★★☆ |
最终建议:
-
最佳实践:强烈推荐使用方法二(手动填写简介),这是对 SEO 和用户体验最有利的方式,在后台写好简介,前台模板使用
{dede:field.description function='htmlspecialchars(@me)'/}调用。 -
备选方案:如果因为某些原因无法手动填写简介,或者需要一个长度完全统一的简介,推荐使用方法四,它能生成最干净的、不含任何 HTML 标签的简介。
希望这些方法能帮到你!
