在zblog中将某篇文章设为置顶文章后,它将会在首页、分类页等页面都置顶。而这就使这些页面增加了重复内容,搜索引擎不喜欢重复内容,所以这样不利于SEO。从用户体验的角度看,置顶文章在不相关的分类中显示也是没有意义的。那么如何才能只在首页、文章所在分类页和文章所在分类标签页显示置顶文章呢?
网上的常用修改方法
用过zblog的应该都在网上看到过此类修改方法,但似乎都不能完全达到我们的要求,至少笔者没有找到完美的。先给出网上经常见到的修改方法:
1.在网站根目录下找到\FUNCTION\c_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,可以回来留言,我会尽量修正。
本文来源于鸡啄米博客,原文地址:http://www.jizhuomi.com/software/154.html