使用 WordPress 建站的朋友應該都會遇到一個問題,那就是大量的垃圾評論。不管你是新站還是老站都一樣,今天君子不器就為大家推薦幾種對付這些垃圾評論的方法。當然了,若是你已經使用了評論外掛之類的東西,那麼就不必要看此文了,因為本文是針對 WordPress 預設評論,只適合那些想透過純程式碼的方式解決 WordPress 垃圾評論的站長朋友。

方案一:禁止評論中出現超連結

在 WordPress 中,很多垃圾評論甚至不需要去自習看內容,只需要瞄一眼就能確定是垃圾評論,因為這些評論一般都帶有大量的超連結或者全是英文日文等。因此我們就可以根據這些評論的特點透過程式碼實現禁止其發表。

  1. function lianyue_comment_post( $incoming_comment ){
  2. $http ='/[<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|]/u';
  3. if(preg_match($http, $incoming_comment['comment_content'])){
  4. wp_die("發貼機 哥 屋 恩!");
  5. }
  6. return( $incoming_comment );
  7. }
  8. add_filter('preprocess_comment','lianyue_comment_post');

方案二:透過評論中必須包含中文的方式禁止全英文評論

在使用 WordPress 的過程中,若是你開啟了網站的註冊功能,那麼你就會發現你網站要不了多久就會多出一堆全英文的使用者名稱,這些都是一些國外的廣告機器人註冊用來發廣告的,因此我們很有必要禁止掉這些全英文的評論。

  1. function ruikeedu_com_comment_post( $incoming_comment ){
  2. $pattern ='/[一-龥]/u';
  3. // 禁止全英文評論
  4. if(!preg_match($pattern, $incoming_comment['comment_content'])){
  5. wp_die("您的評論中必須包含漢字,否則將被視為發貼機!");
  6. }
  7. return( $incoming_comment );
  8. }
  9. add_filter('preprocess_comment','ruikeedu_com_comment_post');

方案三:評論中必須包含中文且不得出現如超連結之類的指定字元

若是你想要同時使用兩種方式又覺得貼兩份程式碼麻煩的話,那麼請直接複製下面二合一程式碼。使用了下面的程式碼後就不要再使用方案一和方案二了。

  1. //評論中必須包含中文且不得出現如超連結之類的指定字元
  2. function ruikeedu_com_comment_post( $incoming_comment ){
  3. $pattern ='/[一-龥]/u';
  4. $http ='/[<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|]/u';
  5. // 禁止全英文評論
  6. if(!preg_match($pattern, $incoming_comment['comment_content'])){
  7. wp_die("寫點漢字吧,博主外語很捉急!You should type some Chinese word!");
  8. }elseif(preg_match($http, $incoming_comment['comment_content'])){
  9. wp_die("不好意思,您的評論違反本站評論規則!");
  10. }
  11. return( $incoming_comment );
  12. }
  13. add_filter('preprocess_comment','ruikeedu_com_comment_post');

方案四:遮蔽評論中的指定關鍵詞,如:Email 、 Url 、 Ip 等

  1. //遮蔽評論中的指定關鍵詞,如:email 、 url 、 ip 等
  2. function ruikeedu_com_fuckyou($comment){
  3. if(wp_blacklist_check($comment['comment_author'], $comment['comment_author_email'], $comment['comment_author_url'], $comment['comment_content'], $comment['comment_author_IP'], $comment['comment_agent'])){
  4. header("Content-type: text/html; charset=utf-8");
  5. err(__('不好意思,您的評論違反本站評論規則'));
  6. }else{
  7. return $comment;
  8. }
  9. }
  10. add_filter('preprocess_comment','ruikeedu_com_fuckyou');

方案五:遮蔽長連線評論

  1. function ruikeedu_com_fuckyou_spamcheck($approved, $commentdata){
  2. return(strlen($commentdata['comment_author_url'])>50)?
  3. 'spam': $approved;
  4. }
  5. add_filter('pre_comment_approved','ruikeedu_com_fuckyou_spamcheck',99,2);

方案六:遮蔽暱稱,評論內容帶連結的評論

  1. function ruikeedu_com_fuckyou_link($comment_data){
  2. $links ='/http://|https://|www./u';
  3. if(preg_match($links, $comment_data['comment_author'])|| preg_match($links, $comment_data['comment_content'])){
  4. err(__('在暱稱和評論裡面是不準發連結滴.'));
  5. }
  6. return($comment_data);
  7. }
  8. add_filter('preprocess_comment','ruikeedu_com_fuckyou_link');