织梦CMS发布/修改文章导致tag标签消失的问题解决办法

最近有站长朋友问我一个关于tag标签消失的问题,经过一番研究终于发现了问题所在。总的来说有两方面需要检查:

一、逗号问题 

发布文章的时候,多个tag标签之间一定要用英文的逗号隔开,而不是中文的逗号。
 

二、tag标签长度超出了限制(通常都是这个问题引起tag的消失)

如果你输入的tag长度超出了默认的限制(12字节),就会导致tag的消失,小编用utf的版本进行测试,当输入4个中文的时候tag正常显示,输入5个中文就会导致tag的消失。utf-8编码中每个中文占3字节,解决办法如下:

(1)修改数据库中表dede_tagindex和dede_taglist的tag字段属性:把varchar(12)修改为varchar(200)

如果你不会修改数据库,可以在后台的 [系统] - [SQL命令行工具] 中输入以下指令:
请注意:dede_是系统默认的数据表前缀,如果你修改过表前缀,这里请自行更换

alter table dede_tagindex modify tag varchar(200);
alter table dede_taglist modify tag varchar(200);

(2)修改源码,在include/helpers/archive.helper.php中查找:

大概第200行的 if(isset($tag[12])修改为:if(isset($tag[200])

大概第242行的 if(isset($tag[20])修改为:if(isset($tag[200])