垃圾评论已经不是一个新鲜的东西了,相信只要是日独立IP超过2000的网站,只要开放评论的话,每天都会收到几十条乱七八糟的垃圾评论。
链接到的垃圾站过多,可能会造成网站在搜索引擎中被降权(主要是百度,Google 通过nofollow 设置是可以避免的),这对站长来说绝对不是什么值得恭喜的事情。今天我们要实现的就是即使收到再多的垃圾评论,这些发送评论的站点也不会被搜索引擎索引到。
一般情况下评论者的链接都是直接以其网站链接的形式出现的,点击会直接跳转到该网站,通过重定向跳转处理后,评论者网站的链接会如下显示:
http://www.jb51.net/?r=http://361ku.com
然后再通过对 robots.txt 文件的处理,评论区域的链接就不会被搜索引擎索引到,这样就不必再担心垃圾评论对网站的潜在威胁了。
实现重定向跳转主要有两种方法,一种是插件实现,一种是手工加代码实现,你可以根据需要自行选择。
使用 Comments Link Redirect 插件实现重定向跳转
使用我爱水煮鱼的 Comments Link Redirect 插件可以完美实现评论者链接重定向跳转,具体使用方法如下:
1.点击这里下载 Comments Link Redirect 插件。
2.安装激活插件,用记事本打开 wordpress 根目录下的 robots.txt 文件,添加如下代码:
Disallow: /?r=*
刷新你的页面,看看你的评论区的链接是不是已经加上重定向跳转了。
不用插件实现重定向跳转
对于不想用插件的朋友来说,可以使用这个方法实现,园子博客的插件已经达到20个了,实在是不敢加了。
1.找到你使用的主题文件中的 functions.php ,将以下代码添加到该文件中:
//comments link redirect
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://www.jb51.net/");
exit;
}
}
}
2.用记事本打开 WordPress 根目录下的 robots.txt 文件,添加如下代码:
Disallow: /?r=*
刷新页面看看,同样也可以实现评论区的链接重定向跳转。
cos-html-cache 静态化插件和 Comments Link Redirect 插件冲突的解决方法
这点是在万戈 那里看来的,说是如果使用了 cos-html-cache 静态化插件,会导致 Comments Link Redirect 插件无法正常使用,yanxc 给出了一个解决方案,专门针对使用了 cos-html-cache 静态化插件的朋友。
方法同样是把以下代码复制到你使用的主题文件中的 functions.php 文件里面,代替上面提供的代码。
//comments link redirect
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;
}
然后再修改 robots.txt 文件即可。
使用 mg12 的 inove 主题不能实现链接重定向跳转的解决方法
有博友反映说使用 inove 主题通过以上的两种方法都不能实现评论区的链接重定向跳转,经过园子研究解决方法其实也很简单,方法如下:
打开 inove 主题目录下的 functions.php 文件,查找类似如下代码:
<a id="commentauthor-<?php comment_ID() ?>" class="url" href="<?php comment_author_url() ?>" rel="external nofollow">
将其改成:
<a target="_blank" id="commentauthor-<?php comment_ID() ?>" class="url" href="http://www.jb51.net/?r=<?php comment_author_url() ?>" rel="external nofollow">
改完代码后,再使用上面提供的基于插件或修改代码的方法即可完美实现重定向跳转的效果。
这两种方法的最终目的其实都是在和垃圾评论做战,虽然不能通过此方法杜绝垃圾评论,但如果那些发垃圾评论的人得不到丝毫的权重和价值,对他们来说也就没有什么意义了。