织梦tag.php删,DedeCMS的TAG标签SEO问题改进及PHP源代码讲解

news/2024/5/9 14:46:07/文章来源:https://blog.csdn.net/weixin_36054159/article/details/115511043

7845224ca188c283efde9dfe185e144b.png

DEDECMS是最优秀的中文开源CMS系统之一了,不过,DEDE系统也不是尽善尽美的,存在许多待改善的地方,且不说它那基本广受诟病的安全问题,今天跟版网就找其中一个细节说说它的问题,那就是它的tag标签问题。

DEDECMS中的tag功能设计得不合理,正确的方式是:如果一篇文章被加了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函数,主要保存文章对应标签的过程如图:

840e530b6a95e302e0350e868c4ddb78.png

通过上图可以看出代码中没有对于文章对应表(dede_taglist)标签排序的设置,然后在文件中GetTags($aid)读取文章对应标签的时候没有对读取排序进行操作,默认为按照tid的顺序读取,如下图:

ef19a1e6dc851f2836fb74284b42a6fe.png

输出的结果和上文所叙述的结果相同,这个tid即等于根据进入标签数据表的顺序,所以标签的tid会比较大。

(2)、建立一个表存储某篇文章标签顺序

如果要让文章标签按照用户输入的顺序进行保存,就必须记录用户输入保存标签是的顺序所以我们要修改文章标签表dede_taglist。在表中添加一个字段作为记录用户输入是排序的字段,修改表的方式如下:

ALTER TABLE `dede_taglist` ADD `order` INT( 3 ) NOT NULL COMMENT '序号' AFTER `tag`

将sql语句复制,用管理员用户登录dede后台左侧树栏“系统”->"sql命令行工具" 粘贴在文本框中,点击“确定”(sql语句中的“dede_taglist”的表前缀根据你的数据库中设置的表前缀)。

(3)、修改匹配标签的函数

然后修改操作文章标签的方法,首先修改添加标签的函数。在原函数中添加了一个参数作为序号的记录function InsertOneTag ($tag, $aid,$i),$i是添加时的序号该函数主要修改了文章标签添加的部分,加入对`order`排序信息的添加。修改后如图:

6c54297aa5c069bda6a1e253107cd64c.png

然后修改InsertOneTag相关的函数InsertTags

94b775845147bd0d9d04f4c48c81964e.png

这样在添加标签的时候就会记录用户输入标签是的排列顺序,然后修改获取标签的数序函数GetTags($id)中的获取标签的属性按照`order`的顺序读取,修改后的代码如下图:

e285d4ba1e5ca36ca92d4c544e52ee6a.png

以上修改的是标签添加到读取的过程,还要修改编辑标签的方式,编辑标签的函数也是在同文件中,UpIndexKey($id, $arcrank, $typeid, $sortrank=0, $tags='')函数,该函数分为两次循环进行对标签的操作,第一次循环,判断用户修改的标签时候以存在,不存在的话进行添加。第二次循环,判断已存在的标签是否和用户输入的标签相同,如果已存在的标签中有但是用户输入的标签中没有,将该标签删除,如果都存在那么根据用户输入的标签顺序重新排序。代码如下:

5a0a7826ebe5b44d4ce8f8f24ee55fc7.png

e38e8d11dd1aca5be42d5ca00387174e.png

这个函数修改后,用户在编辑标签并保存以后,系统就按照用户标记的顺序进行输出了。

跟版网的程序员已经通过修改源代码修改了这个问题,如果需要相应源代码的朋友,可以点击链接下载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_827823.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么把整个段落往左移_单页网站怎么做SEO优化与推广

单页网站SEO是一个相对特别的优化工作,它更多的应用于在线商品快速交易行业,单页网站其实往往更多的应用在SEM竞价推广,而不是SEO。SEO单页排名技术:指的是依赖于一个单独的页面,对目标关键词进行优化,通常…

怎么嵌入到网站的html源代码中_怎么用好结构化数据标记,手把手教你做schema markup code...

什么是结构化数据(schema markup)?Schema Markup( https://schema.org/)是一种代码形式用来帮助你的网页和搜索引擎进行友好的沟通,告诉搜索引擎更多关于你的信息,比如说有时候我们看到搜索结果…

seo管理php源码_网站建设之常用CMS系统的SEO优化功能分析

大家好!我是小熊优化的SEOER,在seo优化这个行业已经从业7年多了,优化过不少的个人和企业网站,根据多年的经验也总结出了不少的优化经验,现在大部分的网站,尤其是单位性质的网站基本都是采用CMS系统来做的&a…

推荐一个学习基础编程技术的网站

推荐一个学习基础编程技术的网站 RUNOOB-菜鸟教程 该网站简介: ----------------------------------------------------------------------------------------------------------------------------------------------------- 关于我们 菜鸟教程提供了最全的基础…

如何免费领取 Pluralsight 等各大学习网站会员?

步骤 首先你需要一个微软账号,如果你没有的话可以去注册一个,点击 注册 。 点击网址 微软 Visual Studio 福利 并登陆你微软账号,这时你会看到下面有很多激活码可以领取。 激活 点击Activate,根据操作步骤,在Pluralsight页面输入…

请检查网站服务器是否正常.,请检查服务器地址是否正确

请检查服务器地址是否正确 内容精选换一换网站的访问与云服务器的网络配置、端口通信、防火墙配置、安全组配置等多个环节相关联。任意一个环节出现问题,都会导致网站无法访问。本节操作介绍网站无法访问时的排查思路。网站无法访问怎么办?如果打开网站有…

实现WorkPress网站文章代码高亮显示

首先需要在WorkPress中下载WP Githuber MD,下载方法如下:插件—>安装插件—>右上角搜索框输入WP Githuber MD—>下载该插件。 有了插件后,在插件—>已安装插件中找到WP Githuber MD—>设置WP Githuber MD的属性。选中模组&am…

CTF_Crypto_MD5【BUUCTF网站题库】

题目 MD5 解压 解题 工具 MD5 解码工具 https://www.somd5.com/ 答案 最后 在flag输入 flag{admin1} 成功!!! 小结 MD5简介 MD5是一种常见的加密方式,但准确来说,它只是一种编码方式,它将任意有限…

CTF_Crypto_Url编码[BUUCTF网站]

题目 Url编码 由此可以看出是url编码和解码操作 即 encode and decode 题目 具体的url编码后的格式 解题 url编码–拓展 浏览器打包表单输入的格式 url编码是一种浏览器用来打包表单输入的格式。浏览器从表单中获取所有的name和其中的值 ,将它们以name/value…

【Ubuntu】}Ubuntu镜像网站

Ubuntu镜像下载 镜像下载 阿里云镜像站-aliyun mirrors 镜像网址: ** 浙江大学;(易进)xjtU(西安交通大学)华为云tsinghua(清华大学)Beijing University of Posts and Telecommunications(北邮大)&#x…

程序员必备网站和工具

程序员必备网站和工具 思维工具:XmindPPT模板:办公资源、站长素材、笨鸟网、PPTStone、六图网、欧酷PPT招聘软件:前程无忧、智联招聘、BOSS直聘Maven仓库:https://mvnrepository.com/清华大学开源软件镜像站:https://…

HttpClient4登陆有验证码的网站

其实就这个问题,本来是很简单的,我自己花了近两个下午才搞定,现在记录一下。也希望能帮助后来的朋友。先说httpclient 操蛋的httpclent!为什么说操蛋呢,因为从httpclient3到httpclient4,有很大的变化,而且我自己水平也不够,在jar包上出了很多问题(例如我不知道还有个httpcore…

大型网站技术架构 读书笔记4 高可用架构

说句掏心窝的话,高可用甚至比高性能更重要。为什么? 因为你把系统的性能优化10倍,你的老板可能会说:小董呀,干的不错。 可是,如果你负责的模块,三天两头就宕掉了,嘿嘿,你懂得。 可用性度量 99%-----网站年度不可用时间小于88个小时 99.9%---网站年度不可用时间小于9个小时 99.…

大型网站技术架构 读书笔记3 高性能架构

很明显,这一章是说性能优化的,那么在说性能之前,我们得先了解性能的具体定义,也就是说如何评定一个系统性能是好还是不好。因此,我们就先说说性能测试,然后分别是前端性能,应用服务器的性能以及存储性能的优化。性能测试 1 不同的人对性能的认识是不一样的对用户来说,他们认为的…

大型网站技术架构 读书笔记2 大型网站核心架构要素

通常情况下,一个网站的架构出来功能性需求外,还应该考量以下五个方面:性能可用性伸缩性扩展性安全性性能 性能的官方解释,我就不说了。对用户来说,就是系统的反应速度是否快。对网站来说,性能问题是无处不在的,继而,我们优化性能的手段也有很多。我们从前到后一个一个来说在浏览…

大型网站技术架构 读书笔记1 大型网站架构模式

架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。 关于什么是模式,这个来自建筑学的词汇是这样定义的:“每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方…

大型网站架构之大型网站的演变过程

大型网站的演变过程 现在网站面临的问题: 1.企业在网站技术上的进行了大量的投入,但总是在关键的时刻频繁宕机(高性能); 2.工程师夜以继日的加班工作,网站缺总是故障频繁、新功能上线缓慢(扩展…

大型网站架构之大型网站架构模式

大型网站架构模式 什么是模式呢?(模式就是针对特定问题目前行业的解决方案) 模式描述了一个在我们周围不断重复发生的问题以及该问题解决方案的核心。借助模式我们可以减少很多重复的工作。 大型互联网公司在实践过程中提出了很多的解决方案,以实现网站…

大型网站架构之大型网站核心架构要素

大型网站核心架构要素 软件架构指的是,有关软件整体结构与组件的抽象描述,用于指导大型软件系统各方面的设计。 1.性能 在浏览器端 a.通过浏览器缓存、使用页面压缩、合理布局页面、减少Cookie传输等手段改善性能; b.可以使用CDN&#xff0c…

大型网站架构之性能篇

网站的高性能架构(性能) 不同视角下的网站性能有着不同的标准,也有不同的优化手段。 1.用户视角的网站性能优化 通过优化页面HTML样式、利用浏览器端的并发和异步特性(即用户不用等待结果)、调整浏览器缓存策略、使用…