码库记事本

码库记事本

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

小诸哥 0

织梦的强大就在于开源,新手站长可能对开源不是很了解,开源的含义就是说源代码公开,源代码可以说是软件的核心技术,开源意味着核心技术公开,但应注意,原作者仍然拥有该软件的版权。

可是仍然有很多默认的弊端不适合当前搜索引擎的优化,最突出的一个问题,就是织梦的tags标签的长度文字,织梦默认的TAGS标签长度是12个字节,也就是6个汉字,这对于当前的搜索引擎来说是不太友好的,今天我们就来说一说如何修改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 ) ;

view source代码的目的就是通过织梦封装好的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标签的地方宽度不够,调用出来的TAGS标签会撑破div标签的设置,所以我们需要控制调用出来的TAGS标签的长度,这时候就需要修改include/taglib文件夹下面的tag.lib.php文件了,在里面查找:

$row['tag'] = htmlspecialchars($row['tag']);修改为:$row['tag'] = cn_substr($row['tag'],$titlelen);

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

{dede:tag row='10' getall='1' sort='month' titlelen="10"}    

<li><a href='[field:link/]'>[field:tag /]</a></li>  

{/dede:tag}

也就是说对调用出来的TAGS标签的长度为5个汉字。

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

标签: tags标签