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

首頁 > CMS > Wordpress > 正文

Wordpress自動將包含長鏈接的評論標記為垃圾評論

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

現在大量的機器可以直接對WordPress博客進行評論并帶有大量的連接,這些帶鏈接評論我們定為垃圾評論了,下面我來給大家介紹幾款自動將包含長鏈接的評論標記為垃圾評論實例.

方法一:此方法依舊是來自 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.  } 
  40.  $anti_spam = new anti_spam(); 

這個方法可以阻止98%以上的垃圾評論,當然了,倡萌還建議你審核第一次提交的評論人的評論,設置審核后才顯示,如果遇到垃圾評論,將其email、IP、網址等添加到黑名單即可,下面是倡萌目前的評論設置,你可以在WP后臺-設置-討論下設置.

方法二:自動拒絕包含特定關鍵詞的垃圾評論,將下面的代碼添加到主題的functions.php文件,自己根據需要,修改 $ bad_comment_content 數組的內容,任何包含在$ bad_comment_content 數組內的字符,將會被自動拒絕留言,代碼如下:

  1. function in_comment_post_like($string$array) {    
  2.     foreach($array as $ref) { if(strstr($string$ref)) { return true; } }    
  3.     return false;   
  4. }   
  5. function drop_bad_comments() {   
  6.     if (!emptyempty($_POST['comment'])) {   
  7.         $post_comment_content = $_POST['comment'];   
  8.         $lower_case_comment = strtolower($_POST['comment']);   
  9.         $bad_comment_content = array(   
  10.             'viagra',    
  11.             'hydrocodone',   
  12.             'hair loss',   
  13.             'xanax',   
  14.             'tramadol',   
  15.             'russian girls',   
  16.             'russian brides',   
  17.             'lorazepam',   
  18.             'adderall',   
  19.             'dexadrine',   
  20.             'no prescription',   
  21.             'oxycontin',   
  22.             'without a prescription',   
  23.             'sex pics',   
  24.             'family incest',   
  25.             'online casinos',   
  26.             'online dating',   
  27.             'cialis',   
  28.             'best forex',   
  29.             'amoxicillin'   
  30.         );   
  31.         if (in_comment_post_like($lower_case_comment$bad_comment_content)) {   
  32.             $comment_box_text = wordwrap(trim($post_comment_content), 80, "n  ", true);   
  33.             $txtdrop = fopen('/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt''a');   
  34.             fwrite($txtdrop"  --------------n  [COMMENT] = " . $post_comment_content . "n  --------------n");   
  35.             fwrite($txtdrop"  [SOURCE_IP] = " . $_SERVER['REMOTE_ADDR'] . " @ " . date("F j, Y, g:i a") . "n");   
  36.             fwrite($txtdrop"  [USERAGENT] = " . $_SERVER['HTTP_USER_AGENT'] . "n");   
  37.             fwrite($txtdrop"  [REFERER  ] = " . $_SERVER['HTTP_REFERER'] . "n");   
  38.             fwrite($txtdrop"  [FILE_NAME] = " . $_SERVER['SCRIPT_NAME'] . " - [REQ_URI] = " . $_SERVER['REQUEST_URI'] . "n");   
  39.             fwrite($txtdrop'--------------**********------------------'."n");   
  40.             header("HTTP/1.1 406 Not Acceptable");   
  41.             header("Status: 406 Not Acceptable");   
  42.             header("Connection: Close");   
  43.             wp_die( __('bang bang.') );   
  44.         }   
  45.     }   
  46. }   
  47. add_action('init''drop_bad_comments'); 

今天再補充下,自動將包含長鏈接的評論標記為垃圾評論,將下面的代碼添加到主題的 functions.php 文件即可:

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

注意看第二行的 50,根據自己的需要修改這個數值,如果你希望將所有帶有鏈接(不管是否是長鏈接)的評論內容都自動標記為垃圾評論,將 50 改為 1 即可.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青铜峡市| 东乡县| 讷河市| 抚松县| 绵竹市| 合作市| 韩城市| 墨竹工卡县| 鱼台县| 中山市| 大竹县| 宁强县| 潮安县| 揭阳市| 利川市| 巴东县| 林口县| 闽侯县| 凭祥市| 米脂县| 仙游县| 岢岚县| 瑞金市| 大庆市| 白朗县| 达尔| 威远县| 玉屏| 麻江县| 兴山县| 沽源县| 潍坊市| 沅陵县| 八宿县| 新竹市| 独山县| 阿瓦提县| 巩留县| 彭州市| 安远县| 阿拉善盟|