用代碼重寫wordpress留言評論者的連結網址
seo沒有很複雜,基本上很簡單。
只是有一些小要點要留意。
就是當留言評論的內容,含有網址或連結時,容易讓「搜尋引擎」的重心,轉向外部連結。
因此我們可以用代碼改變評論留言裡面的內容。
變成這樣http://dhamma.com.tw/?r=http://amitabhabuddhaya.com.tw/
具體做法,開啟主題的functions.php貼入以下代碼
[cc lang="php"]
//用代碼重寫wordpress留言評論者的連結網址
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;
}
}
}
//讓留言評論網址或連結加入nofollow屬性
add_filter('comment_text', 'auto_nofollow');
function auto_nofollow($content) {
//return stripslashes(wp_rel_nofollow($content));
return preg_replace_callback('/
]+/', 'auto_nofollow_callback', $content);
}
function auto_nofollow_callback($matches) {
$link = $matches[0];
$site_link = get_bloginfo('url');
if (strpos($link, 'rel') === false) {
$link = preg_replace("%(href=S(?!$site_link))%i", 'rel="nofollow" $1', $link);
} elseif (preg_match("%href=S(?!$site_link)%i", $link)) {
$link = preg_replace('/rel=S(?!nofollow)S*/i', 'rel="nofollow"', $link);
}
return $link;
}
[/cc]