PJblog默认RSS输出优化

本文最后更新于2014年2月27日,已超过半年没有更新,如果内容失效,请反馈,谢谢!

PJblog很久没有更新了,PJblog4也遥遥无期,想要转用Z-Blog,却似乎很迷芒,不知道我在追求的是什么,我想,还是回过来头重视博文的质量吧。有现有多少人还来访问博客呢,大多都是订阅了吧,这样网站的流量下相应的减少了,PJblog默认输出的有2.0和Atom,二者大同小异,Atom要更“标准”化一些。这次以Feed.asp为例,在RSS输出中增加文章分类、评论链接、相关文章等内容。

1,打开Feed.asp

在第一个%>前找到

Conn.Close Set
Conn = Nothing

注释掉或移动到最末,否则等下调试会报Object required

2,往下查找

SQL = "Select TOP 10 L.log_ID,L.log_Title,l.log_Author,L.log_PostTime,L.log_Content,L.log_edittype,C.cate_Name

有两行,在C.cate_Name后面增加

,C.cate_ID,L.log_tag

这两个主要是为了取得目录ID和Tag分别用于分类和相关文章,后面有用到

3,往下查找

If FeedRows(5, i) = 0 Then

在这句前面插入

    'RSS输出优化开始,添加阅读更多、分类、评论链接和相关文章,maie,2010-9-2
    Dim RST,urllink,OutPut,my_tag
	OutPut=""'定义输出字串
	OutPut=OutPut&"
< a href=""&url&"" target="_blank" >阅读更多《"&FeedRows(1,i)&"》的内容...< /a >
"
	OutPut=OutPut&"分类:< a href=""&SiteURL&"default.asp?cateID="&FeedRows(7,i)&"" target="_blank" >"&FeedRows(6,i)&"< /a > | "
	OutPut=OutPut&"< a href=""&url&"#comm_top" target="_blank">添加评论< /a >
"
    IF FeedRows(8,i)<>"" then'取出log_tag内容,如果不为空
        my_tag=split(FeedRows(8,i),"}")'存入数组				
    Set RST = Conn.Execute("Select top 5 log_Title,log_ID,log_Posttime from blog_Content where log_tag like '%"&my_tag(0)&"%' and log_ID<>"&FeedRows(0,i)&" AND log_IsShow=true AND log_IsDraft=false order by log_PostTime desc")	'检索5篇与第一个tag相关的文章    
    if not RST.eof then
	   OutPut=OutPut&"相关文章推荐:
"'输出相关文章
	   Do until RST.eof 	   
			  if blog_postFile = 2 then
				 urlLink = caload(RST(1))'取自定义路径的链接
		      else 
				 urlLink = "article.asp?id="&RST(1)
			  end if
			  OutPut=OutPut&"< li >< a href=""&siteurl&urlLink&"" target="_blank" >"&RST(0)&"< /a >["&RST(2)&"]< /li >"
              OutPut=replace(OutPut,chr(39),chr(34))			  
		  RST.movenext
       Loop
    end if
	RST.close
    Set RST=nothing
	'else
	   'OutPut="暂无相关文章"
	end IF
	'RSS输出优化结束,在以下显示内容中加入OutPut即可

4,接下来的两个response.write中插入上面的OutPut变量即可

Response.Write("<description><![CDATA["&AddSiteURL(UnCheckStr(FeedRows(4, i)))&[red]OutPut&[/red]"]]></description>")

这里主要说明一下相关文章的原理:
每个文章都有Tag,根据WBC开发的相关文章插件显示,先取出当前文章的所有Tag,是一个以{}分隔的字符串(全是TagID),用Split函数把它分成数组,用数组去轮巡(like ‘%当前数组%’)其它文章的Log_Tag,看是否有相似的,有就列出文章Title、ID、Posttime等信息。但我认为数组中的每个Tag都去轮巡没有必要,所以只需要查询第一个Tag即可,相关文章无需太多,只要列出5篇左右即可

Atom.asp文件修改方式类似。

除非注明,流浪天下 文章均为原创,转载请以链接形式注明出处。
本文链接地址:
订阅本站:http://maie.name/feed投稿联系:m[at]maie.name

猜你也喜欢:

共有 0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注