织梦cms栏目内容摘要

内容摘要概述

在织梦CMS的栏目列表页中,内容摘要(description)是文章列表中展示的简短描述文字。通过 [field:description/] 标签配合 cn_substr 函数,可以实现对文章内容的智能截取和格式化显示。

一、基础摘要调用

<!-- 调用文章摘要字段 -->
{dede:arclist typeid='3' row='10' titlelen='40'}
<div class="article-item">
  <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
  <p class="desc">[field:description/]</p>
  <span class="date">[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</div>
{/dede:arclist}

二、控制摘要长度

使用 cn_substr 函数截取指定长度的摘要:

<!-- 截取前80个中文字符 -->
[field:description function='cn_substr(@me,80)'/]

<!-- 截取后添加省略号 -->
[field:description function='cn_substr(@me,120)'/]...

<!-- 去除HTML标签后截取 -->
[field:description function='cn_substr(html2text(@me),100)'/]

三、根据栏目设置不同的摘要长度

<!-- 不同栏目使用不同摘要长度 -->
{dede:arclist typeid='{dede:field.id/}' row='10'}
<p class="desc">
[field:description runphp='yes']
  $typeid=@me['typeid'] ?? 0;
  $len=80; // 默认
  if($typeid==3) $len=120;  // 科技栏目长摘要
  if($typeid==5) $len=60;   // 生活栏目短摘要
  @me=cn_substr(@me, $len);
[/field:description]
</p>
{/dede:arclist}

四、摘要与缩略图的组合展示

<!-- 图文摘要布局 -->
{dede:arclist typeid='3' row='10' flag='p' imgwidth='150' imgheight='100'}
<div class="list-item clearfix">
  <a href="[field:arcurl/]" class="list-img">
    <img src="[field:litpic/]" alt="[field:title/]">
  </a>
  <div class="list-body">
    <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
    <p class="desc">[field:description function='cn_substr(@me,120)'/]</p>
    <div class="meta">
      <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
      <span>阅读:[field:click/]</span>
    </div>
  </div>
</div>
{/dede:arclist}

五、调用文章正文作为摘要(description字段为空时)

<!-- 当description为空时取正文前N字 -->
{dede:list pagesize='20'}
[field:array runphp='yes']
$desc=empty(@me['description']) ? 
  cn_substr(strip_tags(@me['body']), 200) : 
  cn_substr(@me['description'], 200);
@me='<div class="item">
  <h3><a href="'.@me['arcurl'].'">'.@me['title'].'</a></h3>
  <p>'.$desc.'</p>
</div>';
[/field:array]
{/dede:list}

六、调用富文本格式摘要

使用 HTML2Text 函数处理富文本:

<!-- 保留部分HTML格式的摘要 -->
[field:description function='htmlspecialchars(cn_substr(@me,200))'/]

<!-- 处理正文中的图片标签 -->
[field:body function='cn_substr(preg_replace("/]+>/","",@me),200)'/]

七、SEO优化摘要

确保每个栏目的摘要都适合SEO:

<meta name="description" content="{dede:field.description function='html2text(@me)'/}">

<!-- 确保栏目摘要不为空 -->
{dede:field name='description' runphp='yes'}
if(empty(@me)) @me=$GLOBALS['cfg_description'];
@me=cn_substr(html2text(@me), 200);
{/dede:field}
内容优化建议:建议在发布文章时手动填写摘要(description字段),这比程序自动截取正文更精准。每条摘要控制在100-200字最佳,既要概括文章要点,又要留有悬念吸引点击。