程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> WordPress過濾垃圾評論的幾種主要方法小結

WordPress過濾垃圾評論的幾種主要方法小結

編輯:PHP綜合

由於個人博客小站的空間與mysql空間往往有限,共享服務器資源也有限,所以垃圾評論一定要攔截在寫入數據庫之外。

更可氣的是看到空間的統計,很幾千的IP訪問,但基本上都是這個垃圾評論的IP,所以實在不能忍

網上找了一些方法,主要有三個,如果將這三個一塊使用基本上就可以攔截絕大多數垃圾評論

一、使用Akismet插件(https://wordpress.org/plugins/akismet/),後台申請一個免費的key,可以攔截99%的垃圾評論,但是這個插件還是會將垃圾評論寫入數據庫的,一會幾千條甚至上萬條垃圾評論,雖說可以設置15天後自動刪除,但是看著也別扭,於是加上第二種方法。

二、更改wp-comments-post.php名稱

這種方法是先將wp-comments-post.php改為隨便的名字,然後在你主題文件的comments.php中將wp-comments-post.php改為你剛才改過的名字

但是現在的spam機器人太強了,這種方法基本上沒有任何作用,垃圾評論還是會進入到後台的垃圾評論裡,於是采取第三種方法,過濾掉純英語的垃圾評論,這種評論占了垃圾評論的很大一部分

三、過濾純英文垃圾評論

在你主題的functions.php中添加以下代碼

 function refused_spam_comments( $comment_data ) { 
  $pattern = '/[一-龥]/u'; 
  if(!preg_match($pattern,$comment_data['comment_content'])) { 
  wp_die('評論必須含中文!'); 
} 
  return( $comment_data ); 
} 
add_filter('preprocess_comment','refused_spam_comments');

其中[一-龥]這個正則表達式代表所有中文,這時純英文的垃圾評論算是過濾掉了,但是還有另外一種垃圾評論,日文的……

日文的采用同樣的方法,請幾個常出現的日文假名寫入到正則表達式中ッ、の、ン、優、業、グ、貿

 function fuckjp_comment_post( $incoming_comment ) {
  $http = '/[<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|]/u';
  if(preg_match($http, $incoming_comment['comment_content'])) {
  wp_die( "日本廣告離開!" );
}
  return( $incoming_comment );
}
add_filter('preprocess_comment', 'fuckjp_comment_post');

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved