织梦首页如何调用文章正文?

99ANYc3cd6
预计阅读时长 11 分钟
位置: 首页 织梦建站 正文

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

织梦首页调用文章正文
(图片来源网络,侵删)

下面我将为你详细介绍几种最常用和最有效的方法,从推荐到备选,并解释其优缺点。


推荐 - 使用文章摘要(description字段)

这是最标准、最推荐的方法,织梦在发布文章时,都有一个“或“简介”的字段,你只需要在后台填写好摘要,然后在首页模板中调用它即可。

优点:

  • 速度快:摘要字段是独立存储的,不会查询和解析庞大的body字段,首页加载速度快。
  • SEO友好:摘要清晰明了,能让搜索引擎和用户快速了解文章核心内容。
  • 可控性强:你可以自己控制摘要的内容和长度,更具针对性。

操作步骤:

织梦首页调用文章正文
(图片来源网络,侵删)
  1. 后台填写摘要: 登录织梦后台,进入“核心” -> “内容模型管理” -> “普通文章” -> “更改”,确保你的文章模型中有description字段(默认都有)。 在发布或编辑文章时,在“或“简介”文本框中填写你想要显示的内容。

  2. 首页模板调用: 打开你的首页模板文件(通常是 /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 ⭐ (强烈不推荐)

给你的最终建议:

  1. 首选方法一:养成在后台发布文章时填写“的好习惯,这是最专业、最高效的做法。
  2. 如果摘要为空:可以在调用摘要时,增加一个判断,如果摘要为空,则自动截取正文。[field:description function='(@me ? @me : cn_substr(@me, 100))'/],但更健壮的写法是使用if标签,如上面的示例代码所示。
  3. 避免方法四:永远不要在首页列表中显示完整的文章正文。

希望这个详细的解释能帮助你解决问题!

-- 展开阅读全文 --
头像
织梦如何调用文章内容?
« 上一篇 03-13
C语言for循环如何正确跳出?
下一篇 » 03-13
取消
微信二维码
支付宝二维码

目录[+]