由于百度不支持nofollow,我的博客的上千流量基本都是从Google过来的。所以一直很想加一个WP评论链接跳转的功能,在很多地方都看到了这个修改方法,不知道我的主题怎么了,不管用插件还是代码,都无法实现这个功能,今天终于让我找到原因了。特奉上修改方法。

WordPress 评论者链接跳转的原因(引自水煮鱼博客

国内垃圾留言横行,作为国内最大的搜索引擎百度对此负有不可推卸的责任,由于百度不支持 rel="nofollow" 属性,造成了 Spammer 恣意妄为,肆意到处留言,根据 Akismet 这个防垃圾留言插件的统计,2008 年12月一个月就收到 4000 多条垃圾留言。并且如果如果这些外链很多都是链接到垃圾站,会让导致博客在搜索引擎(主要是百度,Google nofollow 到垃圾网站也是没事的)中的降权,直接导致排名下降。

但是百度死不悔改,并无打算遵守这个事实标准,修复这个漏洞。当你看到自己博客的留言区一大堆链接是起重机,减肥这类的广告是什么样的看法,是的这些都是我们不愿意看到,我们只想拥有一个干净的博客环境,所以我开发了一个 WordPress 插件:Comments Link Redirect,勇敢对抗 Spammer 和百度,彻底解决 WordPress 中这个问题,使得 Spammer 即使成功留言了,也不会被搜索引擎索引。

开始实现链接跳转方法

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')) !== true){
header("Location: $redirect");
exit;
}
else {
header("Location:<!--?php bloginfo('url')?-->/");
exit;
}
}
}

2.用记事本打开 WordPress 根目录下的 robots.txt 文件,添加如下代码:

Disallow: /?r=*

某些主题不能实现评论者链接重定向跳转的解决方法

某些主题只能在内嵌评论有效,而最外层的链接无效,比如 iNove 和 Forece 的主题都不可以,解决办法很简单,打开主题目录下的 functions.php 文件,查找类似如下代码:

<a id="commentauthor-<?php comment_ID() ?>" class="url" href="<?phpcomment_author_url() ?>" rel="external nofollow">

修改为

<a id="commentauthor-<?php comment_ID() ?>" class="url" href="<?php bloginfo('url') ?>/?r=<?php comment_author_url() ?>" rel="external nofollow" target="_blank">

本文转自:Forece Blog 本文固定链接:http://www.forece.net/post/2538.htm

Last modification:June 25th, 2021 at 08:35 pm
If you think my article is useful to you, please feel free to appreciate