上一篇
场景引入:
"老张正忙着给公司网站更新产品库,突然发现DedeCMS后台添加关键词时死活输不完——'智能家居控制系统'刚输到'家居'就提示超出字数!这年头关键词都这么卷了,10个字的限制哪够用啊?" 如果你也遇到过这种抓狂的情况,今天这篇保姆级教程就是你的救星。
DedeCMS默认将关键词(keywords)字段长度限制在60个字符(约20个汉字),这个设定藏在两个地方:
数据库层面
dede_archives
中的keywords
字段默认是varchar(60)
dede_addonarticle
)里的同名字段也是相同配置 程序层面
/dede/archives_do.php
会做字数校验 用phpMyAdmin或Navicat执行SQL(以文章模型为例):
ALTER TABLE `dede_archives` MODIFY COLUMN `keywords` varchar(255);
dede_addonarticle
dede_addonimages
-- 修改文章附加表 ALTER TABLE `dede_addonarticle` MODIFY COLUMN `keywords` varchar(255);
找到/dede/archives_do.php
,约第120行附近找到:
if(isset($keywords) && strlen($keywords)>60) { ShowMsg("关键词长度不能超过60字节","-1"); exit(); }
直接删除或调大数值,比如改为255
编辑/include/arc.archives.class.php
,搜索$this->Keywords
,找到类似代码:
$this->Keywords = cn_substr($this->Keywords, 60);
将60
改为你需要的值,如255
模板显示不全
检查模板里调用关键词的标签,如:
{dede:field.keywords function='cn_substr(@me,30)'/}
去掉cn_substr
或增大截断值
自定义模型同步修改
如果创建了独立内容模型,需要同时修改对应的数据表和程序校验逻辑
不要无脑改大
虽然能改成varchar(1000)
,但过长的关键词会影响SEO效果,建议控制在300字符内
批量更新旧数据
用SQL更新历史数据:
UPDATE dede_archives SET keywords=REPLACE(keywords,'智能家','智能家居') WHERE keywords LIKE '%智能家%';
最后提醒:2025年8月测试时发现DedeCMS V5.7 SP3版本仍存在此限制,但修改方法通用,动手前记得完整备份,改崩了可别怪我没说哦!
本文由 郁元彤 于2025-08-02发表在【云服务器提供商】,文中图片由(郁元彤)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/518255.html
发表评论