此文受啟發于
《為評論、留言者的主頁鏈接添加鏈接跳轉》一文,不過可惜的是
風之逸童鞋介紹的方法是在 Bo-Blog 平臺下,并不適用于 WordPress,但是我深信 WordPress 的強大比 Bo-Blog 而言有過之而無不及,所以我堅信 WordPress 一定也有類似的方法可以實現評論者鏈接的重定向跳轉。先說一下為什么要對評論者的鏈接進行重定向跳轉處理。最主要的原因就是為了防止泛濫的 Spam,如果對評論者的鏈接進行重定向跳轉,那么就算有 Spam 突破防線成功在你的頁面駐扎,你也無需擔心 Spam 會和當前頁面搶權重了。或許你會說評論者的鏈接本來就已經加了 rel=”external nofollow” 屬性,再給鏈接做跳轉處理是不是多此一舉了?我當然不會做那樣沒有意義的事情,第一,百度這丫是不認識 nofollow 這個單詞滴,加了 nofollow 也是白搭;第二,Google 對 nofollow 的權重分布方法已經調整過了,站內鏈接有可能會搶去當前頁面的權重,所以僅靠 nofollow 也是不行的了。
問題的解決方法在我愛水煮魚的博客中找到了答案:Comments Link Redirect 插件。
我愛水煮魚稱其為防 Spam 的終極辦法,此言不虛啊。不過我向來比較排斥使用插件,我看了一下 Comments Link Redirect 插件的代碼,完全可以復制到 functions.php 中來代替使用插件。將以下代碼復制到主題文件夾下的 functions.php 中即可。
- ??
- 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://wange.im/”); ??
- ????????????exit; ??
- ????????} ??
- ????} ??
- }??
然后再看評論者和評論者留言中的鏈接,形式如下:
http://wange.im/?r=http://評論者的URL
不過據 yanxc 同學測試,如果使用了 cos-html-cache 靜態化插件,會導致我愛水煮魚的 Comments Link Redirect 插件無法正常使用,因為我沒有用過任何緩存或者靜態化的插件,這一點我不得而知。不過 yanxc 給出了另一個評論者鏈接重定向跳轉的解決方案,同樣是插件,經我測試,同樣也是可以將代碼復制到 functions.php 中使用,代碼如下:
- ??
- 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; ??
- }??
然后再看評論者和評論者留言中的鏈接,形式如下:
javascript:window.location=’http://評論者的URL’
兩個方案有相同之處,也各有異同各有優點,但最終目的都是一致的,就是堵住 Spam 的臭嘴,用 WordPress 的童鞋們可以各取所需。
原文地址:萬戈博客 http://wange.im/comments-link-redirect-for-wordpress.html
Great post at Document Moved. I was checking constantly this blog and I’m impressed! Extremely useful info specifically the last part :) I care for such info much. I was seeking this certain information for a very long time. Thank you and good luck.