最佳实践是调用正文的摘要,或者使用“截取正文前N个字符”的方法。

(图片来源网络,侵删)
下面我将为你详细介绍几种最常用和最有效的方法,从推荐到备选,并解释其优缺点。
推荐 - 使用文章摘要(description字段)
这是最标准、最推荐的方法,织梦在发布文章时,都有一个“或“简介”的字段,你只需要在后台填写好摘要,然后在首页模板中调用它即可。
优点:
- 速度快:摘要字段是独立存储的,不会查询和解析庞大的
body字段,首页加载速度快。 - SEO友好:摘要清晰明了,能让搜索引擎和用户快速了解文章核心内容。
- 可控性强:你可以自己控制摘要的内容和长度,更具针对性。
操作步骤:

(图片来源网络,侵删)
-
后台填写摘要: 登录织梦后台,进入“核心” -> “内容模型管理” -> “普通文章” -> “更改”,确保你的文章模型中有
description字段(默认都有)。 在发布或编辑文章时,在“或“简介”文本框中填写你想要显示的内容。 -
首页模板调用: 打开你的首页模板文件(通常是
/templets/default/index.htm)。 找到调用文章列表的循环标签arclist。 在arclist标签内,使用[field:description/]来调用摘要。
示例代码:
{dede:arclist row='8' titlelen='30'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
<p>[field:description function='cn_substr(@me, 100)'/]...</p> <!-- 如果摘要为空,可以截取正文 -->
</li>
{/dede:arclist}
[field:description/]:直接调用摘要。function='cn_substr(@me, 100)':这是一个保险措施,如果摘要为空,则截取正文前100个字符。cn_substr是织梦的截取字符串函数。
常用 - 截取正文前N个字符
如果你没有填写摘要,或者希望摘要和正文的前几段保持一致,可以直接截取正文的开始部分。

(图片来源网络,侵删)
优点:
- 自动化:无需手动填写摘要,系统自动生成。
- 内容完整:直接展示正文的开头,信息更直接。
缺点:
- 性能影响:需要查询并解析整个
body字段,如果文章很长且首页文章数量多,会显著降低首页加载速度。 - 可能包含HTML标签:直接截取可能会把HTML标签(如
<p>,<img>)截断,导致页面样式错乱。
操作步骤:
在首页模板的 arclist 标签内,使用 [field:body/] 结合 cn_substr 函数来截取。
示例代码:
{dede:arclist row='8' titlelen='30'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
<p>[field:body function='htmlspecialchars(cn_substr(@me, 200))'/]...</p>
</li>
{/dede:arclist}
[field:body/]:调用文章的完整正文内容。function='cn_substr(@me, 200)':截取正文的前200个字符。htmlspecialchars:非常重要! 这个函数会将HTML特殊字符(如<,>,&)转换为HTML实体,可以防止因为截断HTML标签导致的页面显示错误,强烈建议加上。
备用 - 使用文章简介(introtext字段)
有些模板或模型可能会使用 introtext 字段作为简介,其用法和 description 完全一样。
操作步骤:
与方法一类似,只需要将标签换成 [field:introtext/]。
示例代码:
{dede:arclist row='8' titlelen='30'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
<p>[field:introtext function='cn_substr(@me, 100)'/]...</p>
</li>
{/dede:arclist}
不推荐 - 调用完整正文
绝对不要在首页直接调用完整的 [field:body/]。
<!-- 错误示范!非常影响性能! -->
{dede:arclist}
<p>[field:body/]</p> <!-- 不要这样做! -->
{/dede:arclist}
这会导致首页加载非常缓慢,用户体验极差,并且可能被搜索引擎判定为“内容稀疏”页面,不利于SEO。
总结与最佳实践
| 方法 | 优点 | 缺点 | 推荐度 | |
|---|---|---|---|---|
| 文章摘要 | [field:description/] |
性能好、SEO友好、可控性强 | 需要手动在后台填写 | ⭐⭐⭐⭐⭐ (强烈推荐) |
| 截取正文 | [field:body function='cn_substr(...)'] |
自动化,内容直接 | 性能较差,可能截断HTML标签 | ⭐⭐⭐ (备用方案) |
| 文章简介 | [field:introtext/] |
同摘要 | 同摘要,使用场景较少 | ⭐⭐⭐ (备用方案) |
| 调用全文 | [field:body/] |
无 | 性能极差,严重影响SEO | ⭐ (强烈不推荐) |
给你的最终建议:
- 首选方法一:养成在后台发布文章时填写“的好习惯,这是最专业、最高效的做法。
- 如果摘要为空:可以在调用摘要时,增加一个判断,如果摘要为空,则自动截取正文。
[field:description function='(@me ? @me : cn_substr(@me, 100))'/],但更健壮的写法是使用if标签,如上面的示例代码所示。 - 避免方法四:永远不要在首页列表中显示完整的文章正文。
希望这个详细的解释能帮助你解决问题!
