本站隆重推出全新栏目“淘宝网购物导航“:实时更新淘宝的各类促销活动、成交排行、优惠充值等信息,让您网购更加安心,放心,省心!

简简单单为PJBlog实现动态关键字

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

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

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

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

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

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

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

ASP/Visual Basic代码
  1. '输出文件头   
  2. sub getBlogHead(Title,CateTitle,CateID)   
  3. ... ...   
  4. end sub  

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

ASP/Visual Basic代码
  1. sub re_getBlogHead(Title,CateTitle,CateID,keyWords)   
  2. ... ...   
  3.   
  4. <meta name="keywords" content="Dudo Says,dudo's Blog,<%=keyWords%>" />   
  5.   
  6. ... ...   
  7. end sub  

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

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

ASP/Visual Basic代码
  1. getBlogHead BlogTitle,getCate.cate_Name,getCate.cate_ID  

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

ASP/Visual Basic代码
  1. re_getBlogHead BlogTitle,getCate.cate_Name,getCate.cate_ID,reKeyWords  

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

ASP/Visual Basic代码
  1. '获取Tag作为关键字   
  2. Dim getTag,reKeyWords,re        '定义变量   
  3. Set getTag=new tag                '实例化tag类   
  4. reKeyWords = getTag.filterHTML(log_ViewArr(19,0))        '取得带有html标签的tag   
  5. reKeyWords = Replace(reKeyWords,"</a> <a","</a>,<a")        '将中间的空格换为半角逗号“,”   
  6.         Set re=new RegExp   
  7.         re.IgnoreCase =True  
  8.         re.Global=True  
  9.         '过滤掉HTML标签   
  10.         re.Pattern = "<.*?rel.*?>(.*?)<\/.*?>"  
  11.         reKeyWords = re.Replace(reKeyWords,"$1")   
  12.         re.Pattern = "<.*?>(.*?)<\/.*?>"  
  13.         reKeyWords = re.Replace(reKeyWords,"$1")   
  14.                    
  15.         Set getTag = Nothing  
  16.         Set re = Nothing  

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

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

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

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

评论: 0 | 引用: 0 | 查看次数: -


发表评论
昵 称:
密 码:    游客发言不需要密码.
邮 箱:    支持Gravatar头像
网 址:
验证码:    点击输入框
内 容:
您一共可以输入1000个字
选 项:
不想保留信息请删除cookie
发表评论后您发表的内容自动复制到了剪贴板
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭