dudo博客

原创文章,转载请证明来自http://www.dudo.org
注:本文的修改方法只适用于动态日志
引子:在PJBlog中,一旦在header.asp中设定了关键字,那么全站所有页面都会共用这些关键字。这样存在的问题就是,如果你有两篇文章,他们内容毫无相似之处,这样的两篇文章共用相同的关键字对于搜索引擎来说是不好的。我的博客经常有技术性的文章,也有生活中的文章,如果在有关旅游见闻的文章里出现asp、css一类的东西不太好吧?对于搜索引擎来说,无用关键字关降低排名和索引量。因此,希望PJBlog的下一个版本中能够实现自定义关键字。在此之间我们先简单修改程序实现“动态关键字”。

所谓的“动态关键字”,就是在article页根据页面内容的不同而在中间变化的内容。

基本原理:对于PJBlog的更改我的一个基本原则就是不改变数据库的结构。而文章所对应该的tag往往又是对文章来说比较重要的信息,因此,完全可以配合tag和预定关键字来实现每篇文章的关键字动态变化了。

明白了基本原理,再来修改就很容易了。不过我们要注意Tag在原有程序的调用中要通过大括号{}和数字组合如{31},后转换成html格式的。在中,html格式是不允许出现的,此外,不同的关键字之间要用半角的逗号“,”隔开等等。

需要修改的文件只有两个:header.asp和article.asp。

下面我们看具体的修改步骤:

第一步:修改header.asp文件
在header.asp中,找到下面一行代码:

'输出文件头
Sub getBlogHead(Title,CateTitle,CateID)
... ...
End Sub

这段代码是向页面输出头文件的。所有的可视页面都会用到这个文件,因此为了保证其他页面的正常使用,我们需要把这段代码重新复制一下,并把子过程名称命名为re_reBlogHead,然后再增加一个新的参数keyWords,将html代码中的标签赋于keyWords变量,修改如下(这里除了变量外,还保留了几个静态的关键字):

Sub re_getBlogHead(Title,CateTitle,CateID,keyWords)
... ...
" />
... ...
End Sub

保存文件格式为UTF-8、上传文件。

第二步:修改article.asp文件
article.asp是最终输出文件,在这里他会调用到header.asp。查找下面的代码

getBlogHead BlogTitle,getCate.cate_Name,getCate.cate_ID

把他替换为我们在header.asp中新增的头文件函数:

re_getBlogHead BlogTitle,getCate.cate_Name,getCate.cate_ID,Trim(reKeyWords)

然后在这行代码的上面给reKeyWords赋值(这里之所以用reKeyWords作变量名是因为为keyword和keywords已经被占用,你在修改时一定要注意你所定义的变量不会和原程序冲突)。

'获取Tag作为关键字
Dim getTag,reKeyWords,re	'定义变量
Set getTag=new tag		'实例化tag类
reKeyWords = getTag.filterHTML(log_ViewArr(19,0))	'取得带有html标签的tag
reKeyWords = Replace(reKeyWords," ,(.*?)<\/.*?>"
	reKeyWords = re.Replace(reKeyWords,"$1")
	Set getTag = Nothing
	Set re = Nothing

保存为UTF-8格式,上传。

这样我们基本上实现了为每个页面定义不相同的关键字了。不过这里还要提醒大家要养成一个为文章加tag的好习惯。

如果修改过程有什么问题或者您有更好的改进办法,请给我留言。

另:我在PJBlog 2.5上修改过一次没有成功,但在2.7Build 05上成功了,大家在修改之前一定要对原文件进行备件



共有(20)条评论

锐风 发表于 2008-4-24 at 19:16 #1楼

好想法![reply=dudo,2009-04-25 09:30 PM]:)喜欢能达到预期效果[/reply]

[回复]


onewan 发表于 2008-4-28 at 16:56 #2楼

好像有一个小问题,最后一个关键字后面有一个空格[reply=dudo,2009-04-25 09:30 PM]的确是,不过这应该不会有影响。不过如果觉得不好看的话的可以把再过滤一篇空格 :)[/reply]

[回复]


死虫子 发表于 2008-4-28 at 18:55 #3楼

我有个问题,照你的修改,我没找到re_getBlogHead BlogTitle,getCate.cate_Name,getCate.cate_ID 这段代码,
但是有这个getBlogHead BlogTitle,getCate.cate_Name,getCate.cate_ID ,我直接忽略了“re_”,上传一看效果,很不错,但是我的栏目导航不能用了,点了之后出现下载asp文件,例如点首页会下载default.asp文件;点日志没问题,可跳转。[reply=dudo,2009-04-25 09:30 PM]呵呵,你可能漏掉了其中一个很关键的步骤,在“第一步”中有这么一句“这段代码是向页面输出头文件的。所有的可视页面都会用到这个文件,因此为了保证其他页面的正常使用,我们需要把这段代码重新复制一下,并把子过程名称命名为re_reBlogHead,然后再增加一个新的参数keyWords,将html代码中的标签赋于keyWords变量,修改如下(这里除了变量外,还保留了几个静态的关键字):”。
也就是说,re_getBlogHead是复制了getBlogHead函数后多加了一个参数。
原始的header.asp中没有re_getBlogHead,是我们后加上去的。
不知道我说明白了没?[/reply]

[回复]


死虫子 发表于 2008-4-29 at 08:02 #4楼

好了 谢谢啦

[回复]


你好 发表于 2008-4-29 at 08:26 #5楼

挖,那个双击实现 自动输入验证码,是这样弄的呀?
能提供源文件给我吗?我的QQ是:122133235[reply=dudo,2009-04-25 09:30 PM]参考:http://www.dudo.org/article.asp?id=141[/reply]

[回复]


F 发表于 2008-5-01 at 09:39 #6楼

[quote=死虫子]我有个问题,照你的修改,我没找到re_getBlogHead BlogTitle,getCate.cate_Name,getCate.cate_ID 这段代码,
但是有这个getBlogHead BlogTitle,getCate.cate_Name,getCate.cate_ID ,我直接忽略了“re_”,上传一看效果,很不错,但是我的栏目导航不能用了,点了之后出现下载asp文件,例如点首页会下载default.asp文件;点日志没问题,可跳转。
dudo的回复:
呵呵,你可能漏掉了其中一个很关键的步骤,在“第一步”中有这么一句“这段代码是向页面输出头文件的。所有的可视页面都会用到这个文件,因此为了保证其他页面的正常使用,我们需要把这段代码重新复制一下,并把子过程名称命名为re_reBlogHead,然后再增加一个新的参数keyWords,将html代码中的标签赋于keyWords变量,修改如下(这里除了变量外,还保留了几个静态的关键字):”。
也就是说,re_getBlogHead是复制了getBlogHead函数后多加了一个参数。
原始的header.asp中没有re_getBlogHead,是我们后加上去的。
不知道我说明白了没?
作者的表述让一般人看不懂[reply=dudo,2009-04-25 09:30 PM]要我命了,我本来想尽可能详细一点,结果画蛇添足。
我的意思就是,把getBlogHead复制一遍,然后命名为re_getBlogHead
汗~再不明白就发源文件了[/reply]

[回复]


f 发表于 2008-5-01 at 16:17 #7楼

QQ多少啊,求救[reply=dudo,2009-04-25 09:30 PM]2689****
希望你能看到 过会删除[/reply]

[回复]


self 发表于 2008-5-03 at 10:12 #8楼

我按照你所说的方法修改后页面是乱码。
请问这是什么原因?谢谢。[reply=dudo,2009-04-25 09:30 PM]加我QQ239734745,我具体给你看一下吧[/reply]

[回复]


self 发表于 2008-5-03 at 12:05 #9楼

非常感谢你的耐心指教。谢谢。

[回复]


BadFish 发表于 2008-5-03 at 14:11 #10楼

请问你的评论回复的效果是怎么修改的?能告诉我吗?我按照戒聊修改的,但是回复跟评论不在一个框中.还有你的已经回复的在 侧边栏中“Recent Comment ”中有红色加粗的[OP]标识是怎么实现的?谢谢了“`[reply=dudo,2009-04-25 09:30 PM]下面是本站使用的评论回复修改方法:http://www.dudo.org/article.asp?id=190

你在看了这篇文章之后再根据是否存在“隐藏UBB”代码来显示就行了[/reply]

[回复]


jekeywang 发表于 2008-5-04 at 18:27 #11楼

按照你这里的修改,都是正确的,关键词也可以动态了,但我的导航栏跑到下面去了,到相关日志那个地方啦!不知道为什么,修改绝对没有问题!
[reply=dudo,2009-04-25 09:30 PM]你好,你能把你的网址给我看看吗?
或者你加我的QQ让我给你看看
QQ号239734745[/reply]

[回复]


jump 发表于 2008-5-11 at 15:56 #12楼

更改成功 謝謝 真好用

[回复]


帮忙看看 发表于 2008-5-28 at 15:56 #13楼

Microsoft VBScript runtime 错误 '800a0009'

Subscript out of range: '[number: 19]'

/article.asp,行 51
[reply=dudo,2009-04-25 09:30 PM]看到了,索引超出了数组范围,应该是你的Blog使用了静态模式。目前这种修改方法只支持动态模式。[/reply]

[回复]


jogocun 发表于 2008-6-14 at 16:33 #14楼

这个好,看了几遍才明白作者的一段含义啊![reply=dudo,2009-04-25 09:30 PM]呵呵,表达不是很明确啊~ 哪儿看不太明白可以批出来,我试着解释一下[/reply]

[回复]


高手写东西菜鸟就是看不懂 发表于 2008-7-15 at 03:28 #15楼

研究到现在还没搞好,郁闷!三点了。。。Sub re_getBlogHead(Title,CateTitle,CateID,keyWords) 到底 放在哪里啊?没找到END SUB。。。老大发个源文件给我吧,邮箱:jun_303@163.com……谢谢啦!在信里能告诉我你的QQ号么?我加你。。3Q3Q!!

[回复]


高手写东西菜鸟就是看不懂 发表于 2008-7-16 at 00:08 #16楼

老大,怎么还没回复啊?
还问一句,你这个评论自动保存昵称,EMAIL的功能怎么搞的?介绍一下咯!!!!

[回复]


高手写东西菜鸟就是看不懂 发表于 2008-7-17 at 00:34 #17楼

[eek]站长好忙啊!!!!!

[回复]


chinccc 发表于 2008-7-24 at 10:56 #18楼

看了你的日志不错很好。受益匪浅.绝对的好
推广网站 http://www.google987.cn
优化推广 http://www.google987.cn
网站优化 http://www.google987.cn
推广优化 http://www.google987.cn
网站推广 http://www.google987.cn
网站排名 http://www.google987.cn
搜索引擎推广 http://www.google987.cn
搜索引擎优化 http://www.google987.cn
搜索引擎排名 http://www.google987.cn

[回复]


结肠炎 发表于 2008-8-03 at 15:30 #19楼

结肠炎

[回复]


jogocun 发表于 2008-8-06 at 19:37 #20楼

郁闷下,我站自从加了这个效果,顶级域名就白百度K了,没这么巧吧?

[回复]


随便说两句
名字:
Email:
网站:
内容:

无觅相关文章插件,快速提升流量