当前位置:首页 > 问答 > 正文

dedecms 内容模型优化 dedecms修改内容模型中关键词字数限制的方法

突破限制!手把手教你修改DedeCMS内容模型的关键词字数

场景引入
"老张正忙着给公司网站更新产品库,突然发现DedeCMS后台添加关键词时死活输不完——'智能家居控制系统'刚输到'家居'就提示超出字数!这年头关键词都这么卷了,10个字的限制哪够用啊?" 如果你也遇到过这种抓狂的情况,今天这篇保姆级教程就是你的救星。


揪出限制关键词的"元凶"

DedeCMS默认将关键词(keywords)字段长度限制在60个字符(约20个汉字),这个设定藏在两个地方:

  1. 数据库层面

    • 数据表dede_archives中的keywords字段默认是varchar(60)
    • 附加表(如文章模型是dede_addonarticle)里的同名字段也是相同配置
  2. 程序层面

    • 后台提交时/dede/archives_do.php会做字数校验

数据库改造(操作前务必备份!)

步骤1:修改主表字段

用phpMyAdmin或Navicat执行SQL(以文章模型为例):

dedecms 内容模型优化 dedecms修改内容模型中关键词字数限制的方法

ALTER TABLE `dede_archives` MODIFY COLUMN `keywords` varchar(255);

步骤2:处理附加表 模型的附加表需要分别修改,

  • 文章模型:dede_addonarticle
  • 图集模型:dede_addonimages
    -- 修改文章附加表
    ALTER TABLE `dede_addonarticle` MODIFY COLUMN `keywords` varchar(255);

程序文件调整

关键文件1:解除后台限制

找到/dede/archives_do.php,约第120行附近找到:

if(isset($keywords) && strlen($keywords)>60) {
    ShowMsg("关键词长度不能超过60字节","-1");
    exit();
}

直接删除或调大数值,比如改为255

关键文件2:模板提交限制

编辑/include/arc.archives.class.php,搜索$this->Keywords,找到类似代码:

$this->Keywords = cn_substr($this->Keywords, 60);

60改为你需要的值,如255


可能遇到的坑

  1. 模板显示不全
    检查模板里调用关键词的标签,如:

    {dede:field.keywords function='cn_substr(@me,30)'/}

    去掉cn_substr或增大截断值

    dedecms 内容模型优化 dedecms修改内容模型中关键词字数限制的方法

  2. 自定义模型同步修改
    如果创建了独立内容模型,需要同时修改对应的数据表和程序校验逻辑


优化建议

  1. 不要无脑改大
    虽然能改成varchar(1000),但过长的关键词会影响SEO效果,建议控制在300字符内

  2. 批量更新旧数据
    用SQL更新历史数据:

    UPDATE dede_archives SET keywords=REPLACE(keywords,'智能家','智能家居') 
    WHERE keywords LIKE '%智能家%';

最后提醒:2025年8月测试时发现DedeCMS V5.7 SP3版本仍存在此限制,但修改方法通用,动手前记得完整备份,改崩了可别怪我没说哦!

发表评论