WordPress留言链接重定向跳转并在新窗口打开
时间:2011-09-05 20:43:36
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="', '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文件百度是完全支持的。