WordPress自動禁止包含特定關鍵詞的垃圾評論

來源:互聯網
上載者:User

方法簡介:將以下代碼添加到WordPress部落客題的functions.php檔案中,根據自己的需要修改 $ bad_comment_content 數組的內容,任何包含在$ bad_comment_content 數組內的字元都將會被自動拒絕留言!

代碼如下:

 代碼如下 複製代碼

//拒絕包含特定關鍵詞的垃圾評論
function in_comment_post_like($string, $array) {
    foreach($array as $ref) { if(strstr($string, $ref)) { return true; } }
    return false;
}
function drop_bad_comments() {
    if (!empty($_POST['comment'])) {
        $post_comment_content = $_POST['comment'];
        $lower_case_comment = strtolower($_POST['comment']);
        $bad_comment_content = array(
            '不要亂髮',
            'baidu.com',
            'www.111cn.net',
            'www.111cn.net',
            'is'
        );
        if (in_comment_post_like($lower_case_comment, $bad_comment_content)) {
            $comment_box_text = wordwrap(trim($post_comment_content), 80, "n  ", true);
            $txtdrop = fopen('/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt', 'a');
            fwrite($txtdrop, "  --------------n  [COMMENT] = " . $post_comment_content . "n  --------------n");
            fwrite($txtdrop, "  [SOURCE_IP] = " . $_SERVER['REMOTE_ADDR'] . " @ " . date("F j, Y, g:i a") . "n");
            fwrite($txtdrop, "  [USERAGENT] = " . $_SERVER['HTTP_USER_AGENT'] . "n");
            fwrite($txtdrop, "  [REFERER  ] = " . $_SERVER['HTTP_REFERER'] . "n");
            fwrite($txtdrop, "  [FILE_NAME] = " . $_SERVER['SCRIPT_NAME'] . " - [REQ_URI] = " . $_SERVER['REQUEST_URI'] . "n");
            fwrite($txtdrop, '--------------**********------------------'."n");
            header("HTTP/1.1 406 Not Acceptable");
            header("Status: 406 Not Acceptable");
            header("Connection: Close");
            wp_die( __('bang bang.') );
        }
    }
}
add_action('init', 'drop_bad_comments');

現在全英文的垃圾評論也不洗,我們可以限制一下。

剛一發我就扒過來了~~~~來自v7v3修改自知更鳥,一般的spammer都是外國人,第一次發布絕對是全英文。所以第一次可以擋住80%的垃圾評論!根據email來判斷是否為同一人,如果是,並且第一次沒有使用全英文評論,即可正常發言不受限制。再加上常見的敏感關鍵詞,多數的英文、日文評論都不在話下。

  放至主題檔案中functions.php:

 

 代碼如下 複製代碼
function v7v3_en($comment) {
 $pattern = '/[一-?]/u'; 
 $cau=$comment['comment_author'] ;
 $cem=$comment['comment_author_email'] ;
 global $wpdb;
 $ok_to_comment = $wpdb->get_var("SELECT comment_approved FROM $wpdb->comments WHERE comment_author = '$cau' AND comment_author_email = '$cem' and comment_approved = '1' LIMIT 1");
 if( is_user_logged_in() || 1 == $ok_to_comment ){ return $comment; }
 elseif ( !preg_match_all($pattern, $ccontent, $match) ) {
  exit('
<head><meta http-equiv="Content-Type" content="text/html; charset=utf8"/></head>
初次評論不允許純英文哦~<a href="javascript:history.go(-1);">向上一頁</a>');
 }
}
add_filter('preprocess_comment', 'v7v3_en');
function v7v3_comment_post( $incoming_comment ) {
$http = '/[<|KTV|ッ|の|ン|??|?I|グ|?|]/u';
if(preg_match($http, $incoming_comment['comment_content'])) {
wp_die( "
<head><meta http-equiv='Content-Type' content='text/html; charset=utf8'/></head>
您的評論包含敏感關鍵詞,被系統判斷為垃圾評論!<a href='javascript:history.go(-1);'>向上一頁</a>" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'v7v3_comment_post');

最後還可以使用wordpress評論黑名單功能


1、登陸Wordpress後台→設定→討論→評論黑名單

(內容可自行修改為合適自己部落格的)到評論黑名單,點擊儲存即可

 代碼如下 複製代碼

www.111cn.net
www.111cn.net原理:垃圾站收集垃圾評論常見詞庫,出現此類詞彙的垃圾評論一律被Wordpress後台直接消滅!

 

2、修改Wordpress主題functions.php檔案[修改前注意備份檔案]

註:本站使用comments-ajax.php處理提交,用err輸出錯誤資訊,如果貴站沒有使用comments-ajax.php,那麼請用wp_die輸出錯誤資訊!

方法:將下面代碼中的err換成wp_die!否則會出現500錯誤!

 代碼如下 複製代碼

//評論外鏈數檢測
function BYMT_spamlinks($comment) {
$spamlinks = preg_match_all( '/<a [^>]*href/i', $comment['comment_content'], $out );
if ($spamlinks>1){ //1為允許的連結數量
err(__('抱歉,檢測到評論外鏈過多,請重寫'));
} else {
return $comment;
}
}
add_filter('preprocess_comment', 'BYMT_spamlinks');

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.