织梦TAGS标签12个字符的限制和调用长度的修改方法

2017-04-13 14:27:37 dedecms

织梦

的强大就在于开源,新手站长可能对开源不是很了解,开源的含义就是说源代码公开,源代码可以说是软件的核心技术,开源意味着核心技术公开,但应注意,原作者仍然拥有该软件的版权。可是仍然有很多默认的弊端不适合当前搜索引擎的优化,最突出的一个问题,就是织梦的TAGS标签的长度文字,织梦默认的TAGS标签长度是12个字节,也就是6个汉字,这对于当前的搜索引擎来说是不太友好的,今天我们就来说一说如何修改TAGS标签的长度为我们需要的长度。 第一步:修改数据库中表dede_tagindex和dede_taglist的tag字段属性:varchar(12)修改为varchar(255)这些需要在后台系统-SQL命令行工具之中运行下面的代码:

view source   print? 1 ALTER TABLE `dede_tagindex` CHANGE `tag` `tag` CHAR( 255 ) ; 2 ALTER TABLE `dede_taglist` CHANGE `tag` `tag` VARCHAR( 255 ) ;

代码的目的就是通过织梦封装好的SQL代码修改织梦数据库dede_tagindex和dede_taglist表中的tag字段的值为我们设定的255个字节,也就是124个汉字,大家都知道计算机的英文和汉字占用的字节个数是不一致的。 第二步:修改源码,在include/helpers/archive.helper.php中查找:

1 if(isset($tag[12]) || $tag!=stripslashes($tag))

修改为:

1 if(isset($tag[255]) || $tag!=stripslashes($tag))

然后查找:

1 if(isset($tag[20]) || $tag!=stripslashes($tag))

修改为:

1 if(isset($tag[255]) || $tag!=stripslashes($tag))

然后我们在发布文章的时候,TAGS标签的长度就会发生变化,毕竟一个TAGS标签的长度不会超过一百多个汉字,所以大家可以随意的添加TAGS标签,但是也有一个问题暴露出来,有些现实TAGS标签的地方宽度不够,调用出来的TAGS标签会撑破div标签的设置,所以我们需要控制调用出来的TAGS标签的长度,这时候就需要修改include/taglib文件夹下面的tag.lib.php文件了,在里面查找:

1 $row['tag'] = htmlspecialchars($row['tag']);

修改为:

1 $row['tag'] = cn_substr($row['tag'],$titlelen);

上面的cn_substr函数是织梦封装好的字符串截取函数,也就是说按照设定的titlelen的值来截取输出的TAGS标签长度,所以我们需要在织梦默认的TAGS标签调用代码之中添加titlelen的值,代码如下:

1 {dede:tag row='10' getall='1' sort='month' titlelen="10"} 2   <li><a href='[field:link/]'>[field:tag /]</a></li> 3 {/dede:tag}

也就是说对调用出来的TAGS标签的长度为5个汉字。在这里需要多说一下,有些时候我们调用的TAGS标签并不是完全的汉字,可能为","或者什么分隔符号,占用一定的字符,而织梦的TAGS标签分隔符默认不支持中文,所以大家要有心理准备,调用的TAGS标签长度虽然得到控制,显示上可能不是很理想。