DEDECMS作为一款强大的开源CMS系统,其源代码公开的特点为用户提供了极大的灵活性。然而,即使是这样优秀的系统,也存在一些默认设置不太符合当前SEO优化需求的问题。其中最典型的就是DEDECMS中TAGS标签的长度限制问题。默认情况下,DEDECMS的TAGS标签长度被限制为12个字节(即6个汉字),这对搜索引擎优化来说并不友好。本文将详细介绍如何修改DEDECMS TAGS标签的长度,以满足实际需求。
第一步:调整数据库表字段属性
为了扩展TAGS标签的长度,我们需要修改数据库中dede_tagindex和dede_taglist两张表中tag字段的属性,将其从varchar(12)更改为varchar(255)。这可以通过后台系统的SQL命令行工具运行以下代码实现:
ALTER TABLE `dede_tagindex` CHANGE `tag` `tag` CHAR( 255 ) ;
ALTER TABLE `dede_taglist` CHANGE `tag` `tag` VARCHAR( 255 ) ;
以上代码的作用是通过DEDECMS封装好的SQL语句,将dede_tagindex和dede_taglist表中的tag字段值修改为255个字节(相当于124个汉字)。需要注意的是,计算机中英文和汉字占用的字节数不同。
第二步:修改源代码
接下来需要对源代码进行调整。打开include/helpers/archive.helper.php文件,查找以下代码:
if(isset($tag[12]) || $tag!=stripslashes($tag))
将其修改为:
if(isset($tag[255]) || $tag!=stripslashes($tag))
然后继续查找:
if(isset($tag[20]) || $tag!=stripslashes($tag))
同样修改为:
if(isset($tag[255]) || $tag!=stripslashes($tag))
完成上述修改后,在发布文章时,TAGS标签的长度即可发生变化。
第三步:控制调用TAGS标签的长度
尽管TAGS标签长度已经扩展,但在某些页面上显示时可能会出现宽度不足的问题,导致布局混乱。此时需要进一步控制调用出来的TAGS标签长度。具体方法是修改include/taglib文件夹下的tag.lib.php文件,找到以下代码:
$row['tag'] = htmlspecialchars($row['tag']);
将其替换为:
$row['tag'] = cn_substr($row['tag'],$titlelen);
这里使用了cn_substr函数,它是DEDECMS封装好的字符串截取函数,可以根据设定的titlelen值来限制输出的TAGS标签长度。例如,如果希望调用的TAGS标签长度为5个汉字,可以在默认的TAGS标签调用代码中添加titlelen参数:
需要注意的是,由于TAGS标签可能包含非汉字字符(如“,”等分隔符号),实际显示效果可能与预期略有差异。此外,默认情况下DEDECMS的TAGS标签分隔符不支持中文,用户需对此有所准备。
通过以上步骤,您可以成功修改DEDECMS中TAGS标签的长度限制,并更好地适应SEO优化需求。