DedeCMS的TAG标签SEO问题改进及PHP源代码讲解,dedec
导读:dedecmsdedecmsDEDECMS是最优秀的中文开源CMS系统之一了,不过,DEDE系统也不是尽善尽美的,存在许多待改善的地方,且不说它那基本广受诟病的安全问题,今天跟版网就找其中dede模板安装模板织梦。
DEDECMS是最优秀的中文开源CMS系统之一了,不过,DEDE系统也不是尽善尽美的,存在许多待改善的地方,且不说它那基本广受诟病的安全问题,今天跟版网就找其中一个细节说说它的问题,那就是它的tag标签问题。 DEdede,模板DECMS中的tag功能设计dede5.7模板得不合理,正确的方式是:如果一篇文章被加了A,B,C三个标签,程序应该按照从A到C的顺序,顺次去匹配标签,所以我们可以把与文章与贴近的长尾词标签放在A位置,把一些热词放在C位置,这样文章既可以匹配出非常贴近的相关文章,而且整个相关文章数也能够用足。 而DEDECMS源代码中的匹配原则是这样的:如果你添加了A,B,C三个标签,在保存标签的时候会将按照第一次A,B,C的顺序保存下来,并按照id排序输出:但是以后修改只是修改了标签的内容就不能修改标签的顺序了。也就是说如果首先添加了A,C(图1-1),在想添加B按照A,B,C(图1-2)的顺序修改的时候,原先的A,C标签已存在id小于后添加的标签id,就会无法按照A,B,C的顺序保存,而是按照A,C,B进行排序,不能达到预期的效果。 一般来说,热词会比较早地进入数据库,所以想插入或者添加新的热词保存标签的时候就会按照最早的顺序进行保存,调取相关文章的时候就不能调取出与输入顺序相似的结果。 Dedecms tag问题的程序修改说明: (1)、当前程序的实现原理 Dedecms操作标签的文件是/include/helpers目录下archive.helper.php,保存标签的函数是在文件下方的InsertOneTag函数,主要保存文章对应标签的过程如图: 通过上图可以看出代码中没有对于文章对应表(dede_taglist)标签排序的设置,然后在文件中GetTags($aid)读取文章对应标签的时候没有对读取排序进行操作,默认为按照tid的顺序读取,如下图: 输出的结果和上文所叙述的结果相同,这个tid即等于根据进入标签数据表的顺序,所以标签的tid会比较大。 (2)、建立一个表存储某篇文章标签顺序 如果要让文章标签按照用户输入的顺序进行保存,就必须记录用户输入保存标签是的顺序所以我们要修改文章标签表dede_taglist。在表中添加一个字段作为记录用户输入是排序的字段,修改表的方式如下: ALTER TABLE `dede_taglist` ADD `order` INT( 3 ) NOT NULL COMMENT '序号' AFTER `tag` 将sql语句复制,用管理员用户登录dede后台左侧树栏“系统”->"sql命令行工具" 粘贴在文本框中,点击“确定”(sql语句中的&ldqdede免费模板uo;dede_taglist”的表前缀根据你的数据库中设置的表前缀)。 (3)、修改匹配标签的函数 然后修改操作文章标签的方法,首先修改添加标签的函数。在原函数中添加了一个参数作为序号的记录function InsertOneTag ($tag, $aid,$i),$i是添加时的序号该函数主要修改了文章标签添加的部分,加入对`order`排序信息的添加。修改后如图:
声明: 本文由我的SEOUC技术文章主页发布于:2023-07-18 ,文章DedeCMS的TAG标签SEO问题改进及PHP源代码讲解,dedec主要讲述标签,源代码,CMS网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_29153.html