在zblog中将某篇文章设为置顶文章后,它将会在首页、分类页等页面都置顶。而这就使这些页面增加了重复内容,搜索引擎不喜欢重复内容,所以这样晦气于搜索引擎优化。从用户体验的角度看,置顶文章在不相关的分类中显示也是没有意义的。那么如何才能只在首页、文章所在分类页和文章所在分类标签页显示置顶文章呢?
网上的常常使用修改体例
用过zblog的应该都在网上看到过此类修改体例,但似乎都不克不及完全达到我们的要求,至少笔者没有找到完美的。先给出网上常常见到的修改体例:
1.在网站根目录下找到FUNCTIONc_system_lib.asp文件,然后用记事本或其他编辑东西打开,为确保平安,先备份此文件。
2.在打开的文件中查找"ontop",找到第三次呈现"ontop"的处所。
3.从这个"ontop"所在行起头往下找到"aryArticleList(i)=objArticle.Template_Article_Multi"第一次呈现的处所。
4.将"aryArticleList(i)=objArticle.Template_Article_Multi"替换为以下代码:
ASP/Visual Basic代码
objArticle.LoadInfobyID(objArticle.ID)
If objArticle.CateID=intCateId Then
aryArticleList(i)=objArticle.Template_Article_Multi
Else
aryArticleList(i)=""
End If
5.保存文件。
6.如果没有呈现想要的效果,进行索引重建、文件重建。
依照以上体例修改以后,笔者发现,置顶文章确实只在首页和文章所在分类页显示了,可是又有问题呈现了,点击置顶文章的某个标签后,分类标签页中并没有显示该置顶文章,也就是说在分类标签页中非论是置顶位置仍是文章列表中都找不到此文章了,所以上面的修改体例其实不完美。
完美修改体例
年夜家知道,笔者对C/C++、java、VB等仍是都曾经研究过的,但ASP确实没碰过,只能按照自己的读代码和调试代码的经验来一点点修改和试验,最终找到完美的解决体例。下面就具体说明修改体例。
上面修改步调中的1、2、3、5、6保持不变,只是在最关头的第4步,修改替换代码。将"aryArticleList(i)=objArticle.Template_Article_Multi"替换为以下的代码:
ASP/Visual Basic代码
If objArticle.CateID=intCateId Then
aryArticleList(i)=objArticle.Template_Article_Multi
Else
aryArticleList(i)=""
If Not IsEmpty(strTagsName) Then
On Error Resume Next
Dim aryArticleTaggsName, ArticleTag_i, strSingleTagName
If Not IsEmpty(objArticle.TagToName) Then
aryArticleTaggsName = split(objArticle.TagToName, ",")
For ArticleTag_i = 0 To UBound(aryArticleTaggsName)
strSingleTagName = aryArticleTaggsName(ArticleTag_i)
If UCase(strTagsName)=UCase(strSingleTagName) Then
aryArticleList(i) =objArticle.Template_Article_Multi
End If
Next‘ArticleTag_i
Err.Clear
End If
End If
End If
按此代码修改完成后,年夜家便可以实现只在首页、文章所在分类页和文章所在分类标签页显示置顶文章了。
如果年夜家在修改以后发现还有Bug,可以回来留言,我会尽可能修正。
本文来历于鸡啄米博客,原文地址:.jizhuomi/software/154.html