内容摘要概述
在织梦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字最佳,既要概括文章要点,又要留有悬念吸引点击。