现在的位置:首页>wordpress>正文

用代码修改wordpress博客评论者链接地址的URL结构

2013年07月14日 ⁄ 共 1559字 评论 10 条

在我们的wordpress博客上,如果有人发表了评论,并且评论者在提交评论时,输入了自已的URL地址,在您的网站上浏览评论时,当您的鼠标停放在评论者的名字上,会显示该评论者留下的链接地址,如下图:

pingurl1

其实,您的网站用户在发表评论时留下自已的链接地址,一是能够促进两者的交流,另外还可以让其它的读者顺道进入对方的网站,也是一种比较好的方法.可是如果有人发垃圾评论,在您的网站内留下大量的链接地址时,我们就头痛了.毕竟要一条一条评论去检查的话,我们是耗不起这个青春的.

有什么办法可以处理呢.答案是多种的.首先是安装插件,很省事的方法,福利老幺记得wp keyword link插件就能很彻底地处理好这个问题.当然,大多数朋友应该和福利老幺的想法是一样的,尽量不用插件,而是用代码的方式来解决.也很简单,我们只要在自已的当前主题的functions.php这个文件中加入以下代码就行了,内容如下:

  1. //修改评论者留下的链接地址   
  2. add_filter('get_comment_author_link', 'add_redirect_comment_link', 5);   
  3. add_filter('comment_text', 'add_redirect_comment_link', 99);   
  4. function add_redirect_comment_link($text = ''){   
  5. $text=str_replace('href="', 'href="'.get_option('home').'/?r=', $text);   
  6. $text=str_replace("href='""href='".get_option('home')."/?r="$text);   
  7. return $text;   
  8. }   
  9. add_action('init', 'redirect_comment_link');   
  10. function redirect_comment_link(){   
  11. $redirect = $_GET['r'];   
  12. if($redirect){   
  13. if(strpos($_SERVER['HTTP_REFERER'],get_option('home')) !== false){   
  14. header("Location: $redirect");   
  15. exit;   
  16. }   
  17. else {   
  18. header("Location: http://www.fuli121.com/");   
  19. exit;   
  20. }   
  21. }   
  22. }  

在修改您的functions.php文件时,请首先备份您的文件,以免其它的误操作影响到您网站的正常运转.这时您的站内评论者地址应该已经被改动了,例如福利老幺的格式变成了如下图所示:

pingurl2

整个代码的过程也很简单,就是先获得评论者的链接地址,然后将一个已经预定好的格式将其替代,而在执行操作时,再将原地址换回来.

到这里我们的工作还没有完成,我们还得禁止搜索引擎抓取这些经过改造的地址,具体说来就是不让其抓取链接格式中含有"/?r="这些字符的地址,那就好办了,在您的robots.txt中加入以下内容:

Disallow: /?r=*

网上还有一种方法,那就是修改wp-includes文件夹下的comment-template.php文件内容,然后再添加一个新的php文件来转换链接地址的内容,不过操作过于繁琐.

好了,到此我们就将wordpress博客评论者链接地址的URL结构改造成功.当然,有的朋友可能还会有其它的想法,比如能不能去掉评论链接,答案是肯定的,我们只需在functions.php文件添加以下代码就行了:

remove_filter('comment_text', 'make_clickable', 9);

评论 10 条 评论内容很精采,有内幕,而且绝对有干货

  1. 枫叶红秋雨 2013年07月14日 11:44  @回复  Δ-49楼 回复

    这个不错。可以直接url调出


    • 管理员
      jiang 2013年07月14日 12:22  @回复  ∇地下1层 回复

      但是您要注意的是,不要让搜索引擎抓取了这些链接页面,可以在robots.txt文件屏蔽掉,也可以设置nofollow属性.

  2. 免费资源部落 2013年07月14日 12:47  @回复  Δ-48楼 回复

    这样可以防止百度牵连网站了。

  3. raintrue 2013年07月14日 22:55  @回复  Δ-47楼 回复

    很不错,不过我刚开始还没注意这些呢,你一说才发现,让百度不抓评论的地址还是不错的

    • raintrue 2013年07月14日 22:57  @回复  ∇地下1层 回复

      额- -楼层是故意这样设计的么?后面回复的却是在1楼,前面的会依次++

      • raintrue 2013年07月14日 22:59  @回复  ∇地下2层 回复

        侧边栏标签的关键字我这边显示不全额- -那啥不知道是不是我的浏览器的问题,我用的猎豹(google内核)然后如果是大小的问题你可以设置成跟我一样的动态标签,又或者你这种还有一种下雨模式的标签(只是略微降低了一点点网站速度)


        • 管理员
          jiang 2013年07月14日 23:05  @回复  ∇地下3层 回复

          raintrue:我的CSS设置有问题,所以标签不能全部显示。主要是在CSS中添加了overflow:hidden;这一限制。


    • 管理员
      jiang 2013年07月14日 23:03  @回复  ∇地下1层 回复

      其实设置nofollow属性也是很不错的选择。这一点我在后面的文章中会讲到。

  4. 城出 2014年12月22日 12:16  @回复  Δ-46楼 回复

    这个方法不错,链接也是自己网站的.

  5. BOON 2016年02月20日 12:43  @回复  Δ-45楼 回复

    收下了,终于知道了,找了好久

给我留言