WordPress 留言链接重定向跳转,主要是对百度来做的,因为 WordPress 留言默认的用 rel='external nofollow'有效地防止了垃圾留言。但是这个对百度没有作用,百度对导出链接的要求很高,所以只好对这些留言链接做了重定向跳转。实现方法:找到您正在的使用的主题,打开主题支持函数 functions.php 文件,在最后面?> 前添加重定向代码,WordPress 评论链接的网址重定向跳转代码如下:
url 定向代码
//comments link redirect // 修改 2011.09.02
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="',%20'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'];
$host = $_SERVER['HTTP_HOST'];
if($redirect){
if(strpos($_SERVER['HTTP_REFERER'],get_option('home')) !== false){
header("Location: $redirect#form:$host");
exit;
}
else {
header("Location: $redirect#form:$host");
exit;
}
}
}
这个代码是我在网上找的,但是我经过了一个小小的修改,先给大家看看效果。
比如下面一个用户在我博客留下的网址,经过以上定向以后的 url 地址就成了 http://www.bluefate.org/?r=http://www.ytwy360.com,当你点击链接,这个地址就会自动转跳到他的网站,不过这里有个小小的变化,变成了这样 http://www.ytwy360.com/#form:www.bluefate.org,呵呵,网址后面多了一个 #form:www.bluefate.org,这个是怎么实现的呢?其实就是多了一点点代码 $host = $_SERVER['HTTP_HOST']; 和 #form:$host,如果不想要的话,就在上面的代码中去掉就行了。
上面实现了,链接的转跳,接下来就是要实现链接在新窗口中打开了。打开 wp-includes 目录下的 comment-template.php 文件,到第 147 行左右 (WordPress3.1) 的 get_comment_author_link() 函数 (也就是 function get_comment_author_link( $comment_ID = 0 )),在第 155 行 else $return 这行 a 标签里加入 target=‘_blank’ 属性,修改后上传即可。
然后我们再用 robots.txt 文件中增加一行 Disallow:/?r=* ,禁止搜索引擎索引这个链接,就 OK 了,robots.txt 文件百度是完全支持的。