织梦在发布文档时,如果"摘要"字段留空,会自动从正文截取前若干字符作为摘要。这本是好意,但对于按 SEO 精心撰写 description 的站点,自动生成的摘要会覆盖手填内容、把代码或图片 alt 文本截进 description,影响搜索结果展现。本文讲解织梦如何关闭文档自动生成摘要,让摘要完全由编辑控制。
一、自动摘要的生成逻辑
织梦摘要处理在 /dede/article_add.php 与 article_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 转化的第一道关卡。