做网站十年,我前前后后用织梦CMS帮客户搭了上百个企业站和资讯站,别的功能都还好,唯独这个“描述设置”,几乎是每个新手必踩的坑,连我自己也栽过不止一次,今天不整虚的,直接把我踩过的雷、试出来的方案、还有长期维护的压箱底经验全倒出来,你能少走两小时弯路,省下几百块调试费。
先说最常见的坑:你辛辛苦苦在后台给栏目填了“栏目描述”,但前端页面死活不显示,或者显示的是乱七八糟的一大段正文截取,为什么?因为织梦默认的模板标签里,栏目描述调用的是{dede:field name='description'},而很多主题为了兼容老版,用的是{dede:field name='keywords'}旁边硬凑出来的变量,更坑的是,有些模板直接调用了typeid对应的seo_description,可你在后台“栏目管理-高级选项”里填的是“摘要描述”,两个字段根本对不上。
我当年给一个客户做化工设备站,就是这个问题,后台描述写了明明白白“专业反应釜生产厂家”,结果前台显示的是文章开头第一句话“本公司成立于2005年,地处…”——谷歌一抓,全站所有栏目都是同一句话,SEO直接废了,后来我一步步排查,发现模板里用的是{dede:field name='description'/},但栏目页底层模板用的是list_article.htm,这个页面的description变量取自栏目表的description字段,而你在“栏目描述”输入框里填的内容,如果带了引号或者换行,织梦的标签解析会直接报错,表现为空白,然后浏览器自动降级为显示正文第一句。

织梦CMS描述设置,从采坑到省心,老鸟的实战配置方案
解决方案如下:
第一,确保后台填写的描述不要用英文双引号、不要有换行符,实在要分句就用中文逗号,第二,打开你的list_article.htm,在<head>区域找到<meta name="description" content="">,把里面的值改成{dede:field name='description' function='html2text(@me)'/},这个html2text函数能把多余的空格和标签剥掉,输出干净的纯文本,第三,如果栏目描述确实没填,织梦会默认取栏目名称,这也不理想,建议在模板里加一层判断:{dede:field name='description' function='(strlen(@me)>5) ? @me : (....)'/}——但说实话,对新手有点复杂,不如直接养成“每个栏目必填描述”的习惯。
再说文章页的描述设置,织梦文章页默认的description是从文章正文里自动截取前250个字符,听起来省事,但问题大了去了,因为正文开头往往是“本公司”或者“这种废话,而且截取的时候会把HTML标签残留混杂进去,导致meta描述里出现<p>、 这样的乱码,我更惨的一次,正文里有个公式用到了<号,结果截取时被浏览器当成了标签解析,整个页面排版都崩了。
别用默认截取,自己写标签,我推荐在文章页模板的<meta name="description">里用这个:
{dede:field name='description' function='cn_substr(@me,200)'/}
但前提是,发布文章时你要手动填写“字段,千万别觉得麻烦,这是最可控的方式,如果你实在想让程序自动,那就在发布时勾选“自动提取摘要”,然后在系统参数里把“摘要长度”调到200,并且把“自动摘要来源”选为“正文前200字,去除HTML”,注意:织梦后台的“自动摘要”在编辑器里有个开关,默认是关的,你要每个编辑器重新打开。
这个坑我踩得太深了,之前以为系统配置里开了全局自动摘要就完事,结果只有开启“远程图片本地化”那个窗口下的编辑器才有效,其他编辑器一概不生成摘要,后来我直接写了一个批量处理PHP脚本,在服务器上跑一遍,把已有的两千篇文章都强制更新了摘要字段,脚本不贴了,说下思路:用dede_archives表,把description为空的行,用dede_addonarticle里的body字段,strip_tags掉标签,再用mb_substr截取220个字符,最后更新回主表,这个操作建议在本地测试好再上生产环境,不然跑挂了更麻烦。
推荐一个我用了五年没出过问题的配置组合:
- 首页描述:在后台“系统参数-站点设置”里写清楚,包含公司名+核心业务+城市,不要堆砌关键词。
- 栏目页描述:如上所述,用
html2text函数抑制乱码。 - 文章页描述:手动摘要优先,没有就自动截取,长度为200字符。
- 插件方面,我强烈建议装一个“织梦描述自动维护插件”(网上有免费版),它能在你发布文章时自动检查描述是否包含域名或电话,如果没有就追加,防止被竞争对手恶意采集后把你的联系方式替换掉,这个细节很冷门,但长期做SEO的一定懂。
长期维护建议:织梦CMS官方已经停止更新,安全漏洞层出不穷,我的习惯是:每三个月登录后台,把“描述设置”里的所有字段导出备份一份;同时定期在服务器上检查/data/tplcache/里的模板缓存文件,如果发现被篡改(比如有异常外链),立即删除缓存并重新生成,不要安装那些来路不明的“描述批量修改”插件,很多是带着后门的,我身边就有朋友中了招,整个站被挂马,搜索引擎全部标红。
最后说一句,织梦的描述设置说白了就是三个地方:站点描述、栏目描述、你把这三层搞清楚,再用一套固定的标签调用,以后换模板都能三分钟内搞定,别像我当年那样,一个栏目一个模板地改,改了三个月,最后还是靠以上这套方案一劳永逸,省下的时间,多写几篇文章不香吗?
发表评论