织梦dedeCMS发布修改文章导致tag标签失效

有时在使用织梦tag标签时间,修改时会发现所加的tag标签不见了,经过一番研究终于发现了问题所在。总的来说有两方面需要检查: 一、逗号问题 发布文章的时候,多个tag标签之间一定要用英文的逗号隔开,而不是中文的逗号。 二、tag标签长度超出了限制(通常都是这个问题引起tag的消失) 如果你输入的tag长度超出了默认的限制(12字节),就会导致tag的消失,小编用utf的版本进行测试,当输入4个中文的时候tag正常显示,输入5个中文就会导致tag的消 […]



有时在使用织梦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])


加载中~