dede 首页调用正文

99ANYc3cd6
预计阅读时长 13 分钟
位置: 首页 DEDE建站 正文

推荐调用文章摘要(最佳实践)

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

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

优点:

  • 加载速度快:摘要字段内容短,首页数据量小。
  • SEO友好:摘要可以精确控制首页显示的内容,避免无关文字稀释关键词。
  • 可控性强:你可以手动为每篇文章编写最吸引人的摘要。

实现步骤:

  1. 在后台填写摘要: 登录DedeCMS后台,进入“[核心] -> [内容模型管理]”,点击你正在使用的模型(通常是“文章”),确保勾选了“自动提取摘要”或手动填写摘要字段。

  2. 修改首页模板: 打开你的首页模板文件 index.htm,找到调用文章列表的标签 {dede:arclist}

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

    {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在保存文章时自动从正文中提取一部分作为摘要,或者在首页直接截取正文。

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

方案A:后台自动生成摘要(推荐)

  1. 进入后台“[系统] -> [系统基本参数] -> [核心设置]”。
  2. 找到 “自动摘要长度” 选项,设置一个合适的字数(200)。
  3. 找到 “自动提取摘要” 选项,选择 “是”。
  4. 保存后,以后发布的文章会自动生成摘要,首页调用方式同 方法一,使用 [field:info/]

方案B:首页模板直接截取(灵活性高)

如果你不想影响后台数据,只想在首页模板里进行截取,可以使用DedeCMS的 cn_substr 函数。

实现步骤:

  1. 修改首页模板 index.htm
  2. {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>

调用自定义字段(高级用法)

结构比较特殊,需要调用特定位置的内容,可以使用自定义字段。

实现步骤:

  1. 添加自定义字段: 后台“[核心] -> [内容模型管理] -> [添加新字段]”,添加一个字段名为 myintro,字段别名为“自定义简介”。

  2. 在后台填写内容: 发布文章时,在“自定义简介”这一栏填写你想要在首页显示的内容。

  3. 在首页模板调用: 使用 [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和内容管理效率。

-- 展开阅读全文 --
头像
C语言for循环嵌套for循环如何正确使用?
« 上一篇 03-23
dede如何随机调用栏目?
下一篇 » 03-23

相关文章

取消
微信二维码
支付宝二维码

目录[+]