织梦如何关闭文档自动生成摘要

织梦在发布文档时,如果"摘要"字段留空,会自动从正文截取前若干字符作为摘要。这本是好意,但对于按 SEO 精心撰写 description 的站点,自动生成的摘要会覆盖手填内容、把代码或图片 alt 文本截进 description,影响搜索结果展现。本文讲解织梦如何关闭文档自动生成摘要,让摘要完全由编辑控制。

一、自动摘要的生成逻辑

织梦摘要处理在 /dede/article_add.phparticle_edit.php 中,核心逻辑:

$description=preg_replace('/\s/i', '', $description);
if(empty($description) && $cfg_auot_description > 0){
    $description=cn_substr(ereg_replace('@page.*$','',$body), $cfg_auot_description);
    $description=preg_replace('/<[^>]*>/', '', $description);
}

当 description 为空且 $cfg_auot_description > 0 时,从正文截取指定字数作为摘要。关掉这个开关即可禁用。

二、关闭自动摘要的两种方式

1. 后台开关(推荐)

进入"系统 - 系统基本参数 - 性能选项",找到:

自动提取摘要字数=0

填 0 表示关闭自动提取,留空 description 字段时文档描述为空。该参数对应 $cfg_auot_description

2. 代码层硬关闭

若担心后台参数被误改,可在 PHP 中直接判断:

// 在 article_add.php 与 article_edit.php 中
$cfg_auot_description=0;
$description=trim($description); // 保留手填值,不再自动补充

把这两行加在原有判断之前,确保即便后台开启也不会触发自动摘要。

三、批量清理历史自动摘要

关闭后历史文档的 description 仍是自动生成的,可用 SQL 清空或重置:

-- 清空所有自动摘要(让 description 留空)
UPDATE dede_archives SET description='' WHERE LENGTH(description) > 0;

-- 或重新从正文生成更合理的摘要(按栏目)
UPDATE dede_archives a
JOIN dede_addonarticle b ON a.id=b.aid
SET a.description=LEFT(REPLACE(REPLACE(b.body,'<','<'), '>','>'), 100)
WHERE a.typeid=5;

清理后需重新生成 HTML 与 sitemap。

四、注意事项

关闭自动摘要后,编辑必须手填 description,否则搜索结果会显示正文开头,可能不理想。
自动摘要会带 HTML 标签残留,搜索引擎抓取后可能显示乱码,关闭后此问题消失。
批量清空 description 后建议立即补充手填描述,避免长期空白影响收录。
若使用采集模块,采集规则里也要同步关闭"自动摘要"。

五、后续优化方向

关闭织梦自动生成摘要后,建议为编辑团队制定 description 撰写规范:长度 80-120 字、包含核心关键词、以号召性语句结尾。可在编辑器旁加 description 预览框,实时显示搜索结果卡片效果,让编辑直观感受描述质量。对于历史文档,可用 AI 工具批量重写 description,再人工抽检,让每一篇文档的搜索展现都经过精心设计,把 description 从可有可无的字段升级为 SEO 转化的第一道关卡。