此文受启发于
《为评论、留言者的主页链接添加链接跳转》一文,不过可惜的是
风之逸童鞋介绍的方法是在 Bo-Blog 平台下,并不适用于 WordPress,但是我深信 WordPress 的强大比 Bo-Blog 而言有过之而无不及,所以我坚信 WordPress 一定也有类似的方法可以实现评论者链接的重定向跳转。先说一下为什么要对评论者的链接进行重定向跳转处理。最主要的原因就是为了防止泛滥的 Spam,如果对评论者的链接进行重定向跳转,那么就算有 Spam 突破防线成功在你的页面驻扎,你也无需担心 Spam 会和当前页面抢权重了。或许你会说评论者的链接本来就已经加了 rel=”external nofollow” 属性,再给链接做跳转处理是不是多此一举了?我当然不会做那样没有意义的事情,第一,百度这丫是不认识 nofollow 这个单词滴,加了 nofollow 也是白搭;第二,Google 对 nofollow 的权重分布方法已经调整过了,站内链接有可能会抢去当前页面的权重,所以仅靠 nofollow 也是不行的了。
问题的解决方法在我爱水煮鱼的博客中找到了答案:Comments Link Redirect 插件。
我爱水煮鱼称其为防 Spam 的终极办法,此言不虚啊。不过我向来比较排斥使用插件,我看了一下 Comments Link Redirect 插件的代码,完全可以复制到 functions.php 中来代替使用插件。将以下代码复制到主题文件夹下的 functions.php 中即可。
-
- add_filter(‘get_comment_author_link’, ‘add_redirect_comment_link’, 5);
- add_filter(‘comment_text’, ‘add_redirect_comment_link’, 99);
- function add_redirect_comment_link($text = ”){
- $text=str_replace(‘href=“‘, ‘href=”‘.get_option(‘home’).’/?r=’, $text);
- $text=str_replace(“href='”, “href='”.get_option(‘home’).“/?r=”, $text);
- return $text;
- }
- add_action(‘init’, ‘redirect_comment_link’);
- function redirect_comment_link(){
- $redirect = $_GET[‘r’];
- if($redirect){
- if(strpos($_SERVER[‘HTTP_REFERER’],get_option(‘home’)) !== false){
- header(“Location: $redirect”);
- exit;
- }
- else {
- header(“Location: http://wange.im/”);
- exit;
- }
- }
- }
然后再看评论者和评论者留言中的链接,形式如下:
http://wange.im/?r=http://评论者的URL
不过据 yanxc 同学测试,如果使用了 cos-html-cache 静态化插件,会导致我爱水煮鱼的 Comments Link Redirect 插件无法正常使用,因为我没有用过任何缓存或者静态化的插件,这一点我不得而知。不过 yanxc 给出了另一个评论者链接重定向跳转的解决方案,同样是插件,经我测试,同样也是可以将代码复制到 functions.php 中使用,代码如下:
-
- add_filter(‘get_comment_author_link’, ‘add_redirect_comment_author_link’, 5);
- add_filter(‘comment_text’, ‘add_redirect_comment_text’, 99);
- function add_redirect_comment_author_link($text = ”){
- $text=str_replace(“href=”,’href=“javascript:window.location=’,ereg_replace(‘href='[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]”,”0“”, $text));return $text;
- }
- function add_redirect_comment_text($text = ”){
- $text=str_replace(“href=”,“href=’javascript:window.location=”,ereg_replace(‘href=“[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]”‘,“0′”, $text));return $text;
- }
然后再看评论者和评论者留言中的链接,形式如下:
javascript:window.location=’http://评论者的URL’
两个方案有相同之处,也各有异同各有优点,但最终目的都是一致的,就是堵住 Spam 的臭嘴,用 WordPress 的童鞋们可以各取所需。
原文地址:万戈博客 http://wange.im/comments-link-redirect-for-wordpress.html
Great post at Document Moved. I was checking constantly this blog and I’m impressed! Extremely useful info specifically the last part :) I care for such info much. I was seeking this certain information for a very long time. Thank you and good luck.