国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > Wordpress > 正文

WordPress將垃圾評論阻擋在門外

2024-09-07 00:50:34
字體:
來源:轉載
供稿:網友

垃圾評論是各位wordpress博客主的一個頭痛的問題當然也包括了我了,現在我整理了一些關于垃圾評論的防止方法,希望這些代碼能幫助各位解決頭痛之事呀.

今天,翼帆遠航將介紹兩種把垃圾評論阻擋在門外的方法。

一般情況下,我們會使用著名的反垃圾評論插件:Akismet 來阻止垃圾評論的入侵,Akismet 會將所有識別出的垃圾評論分離出來,并提供一鍵清理垃圾評論的功能,雖然 Akismet 幾乎能夠 100% 識別出垃圾評論,但由于每天的垃圾評論實在太多,天天點“一鍵清理”也不是辦法,有沒有更加實用的解決方案,能將垃圾評論在提交之前先攔截下來呢?

我們先來分析垃圾評論的類型:

純英文或含有日文、韓文等他國語言的垃圾評論

固定某個網站用于推廣的垃圾評論

對于這兩類垃圾評論,我們對癥下藥,使用兩種方法,分別將這兩類垃圾評論阻擋在門外。

 

方法一:不允許純英文或包含日文、韓文等他國語言的評論提交

將以下代碼插入主題目錄 functions.php 的合適位置:

  1. // 禁止全英文和日文評論 
  2. function v7v3_comment_post( $incoming_comment ) { 
  3.     $pattern = '/[一-?]/u'
  4.     $jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u'
  5.     if(!preg_match($pattern$incoming_comment['comment_content'])) { 
  6.         err( "寫點漢字吧,博主外語很捉急! Please write some chinese words!" ); 
  7.     } 
  8.     if(preg_match($jpattern$incoming_comment['comment_content'])){ 
  9.         err( "日文滾粗!Japanese Get out!日本?出て行け!" ); 
  10.     } 
  11.     return$incoming_comment ); 
  12. add_filter('preprocess_comment''v7v3_comment_post'); 

溫馨提示:若使用以上代碼出現異常,請嘗試將第 6 行和第 9 行的 err 換成 wpdie。

方法二:阻止含有違禁關鍵字的評論提交

將以下代碼插入主題目錄 functions.php 的合適位置:

  1. // 禁止包含違禁關鍵字的評論提交到數據庫 
  2. function v7v3_fuckspam($comment)  
  3.     if (is_user_logged_in()) 
  4.     {  
  5.         return $comment
  6.     }   
  7.     if (wp_blacklist_check( 
  8.                             $comment['comment_author'], 
  9.                             $comment['comment_author_email'], 
  10.                             $comment['comment_author_url'],  
  11.                             $comment['comment_content'],  
  12.                             $comment['comment_author_IP'],  
  13.                             $comment['comment_agent']  
  14.                         )) 
  15.     { 
  16.         header("Content-type: text/html; charset=utf-8"); 
  17.         err(' 
  18.                 您的評論包含違禁關鍵字,或者您的IP已被加入黑名單,如有疑問請聯系管理員處理! 
  19.             '); 
  20.     }   
  21.     else   
  22.     { 
  23.         return $comment
  24.     } 
  25. add_filter('preprocess_comment''v7v3_fuckspam'); 

溫馨提示:若使用以上代碼出現異常,請嘗試將第 6 行和第 9 行的 err 換成 wpdie。

違禁關鍵字的設置在“儀表盤——設置——討論——評論黑名單”,一個違禁關鍵字占一行,此方法依舊是來自 Willin Kan 大師(可惜他已經退出WordPress圈),折騰很簡單,直接將下面的代碼放到主題的functions.php文件的最后一個 ?>前面即可

代碼如下:

  1. / 垃圾評論攔截 
  2. class anti_spam { 
  3.  function anti_spam() { 
  4.   if ( !current_user_can('level_0') ) { 
  5.    add_action('template_redirect'array($this'w_tb'), 1); 
  6.    add_action('init'array($this'gate'), 1); 
  7.    add_action('preprocess_comment'array($this'sink'), 1); 
  8.   } 
  9.  } 
  10.  function w_tb() { 
  11.   if ( is_singular() ) { 
  12.    ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=(["'])comment(["'])(.+)/textarea>#"
  13.     "textarea$1name=$2w$3$4/textarea><textarea name="comment" cols="100%" rows="4" style="display:none"></textarea>",$input);') ); 
  14.   } 
  15.  } 
  16.  function gate() { 
  17.   if ( !emptyempty($_POST['w']) && emptyempty($_POST['comment']) ) { 
  18.    $_POST['comment'] = $_POST['w']; 
  19.   } else { 
  20.    $request = $_SERVER['REQUEST_URI']; 
  21.    $referer = isset($_SERVER['HTTP_REFERER'])         ? $_SERVER['HTTP_REFERER']         : '隱瞞'
  22.    $IP      = isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] . ' (透過代理)' : $_SERVER["REMOTE_ADDR"]; 
  23.    $way     = isset($_POST['w'])                      ? '手動操作'                       : '未經評論表格'
  24.    $spamcom = isset($_POST['comment'])                ? $_POST['comment']                : null; 
  25.    $_POST['spam_confirmed'] = "請求: "$request"n來路: "$referer"nIP: "$IP"n方式: "$way"n?熱? "$spamcom"n -- 記錄成功 --"
  26.   } 
  27.  } 
  28.  function sink( $comment ) { 
  29.   if ( !emptyempty($_POST['spam_confirmed']) ) { 
  30.    if ( in_array( $comment['comment_type'], array('pingback''trackback') ) ) return $comment
  31.    //方法一: 直接擋掉, ? die(); 前面兩斜線?h除即可. 
  32.    die(); 
  33.    //方法二: 標記為 spam, 留在資料庫檢查是否誤判. 
  34.    //add_filter('pre_comment_approved', create_function('', 'return "spam";')); 
  35.    //$comment['comment_content'] = "[ 小墻判斷這是 Spam! ]n". $_POST['spam_confirmed']; 
  36.   } 
  37.   return $comment
  38.  } 
  39. $anti_spam = new anti_spam(); 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 韶关市| 赣州市| 长泰县| 得荣县| 鹤庆县| 措勤县| 武乡县| 凤台县| 庆城县| 焦作市| 南和县| 将乐县| 阳春市| 阿坝县| 鸡泽县| 特克斯县| 泊头市| 漠河县| 泗阳县| 云安县| 青冈县| 新沂市| 罗山县| 杭锦旗| 九江县| 富阳市| 武穴市| 凉山| 随州市| 冕宁县| 大悟县| 屏南县| 桑植县| 定州市| 平利县| 县级市| 高要市| 黎川县| 礼泉县| 景洪市| 黄骅市|