前幾天發了一篇 WordPress 屏蔽日文垃圾評論的教程:《 WordPress 小技巧:屏蔽日文垃圾評論》,不過今天在羣裏聊天時又有朋友説屏蔽了日文垃圾評論又來了英文評論,而且英文評論不好一竿子打死,因為有些童鞋就喜歡拽兩句英文。其實我們可以限制下訪客初次來訪不允許發表純英文評論,這樣相對一竿子打死所有英文評論就要好的多了就要好上很多。

function wxd_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=""> 向上一頁</a>');
    }
}
add_filter('preprocess_comment', 'wxd_en');

以上代碼就是以評論輸入的郵箱作為判斷,如果此郵箱未在網站有被審核通過的評論則不允許發表純英文評論,然後在後台開啓下初次評論需要審核即可人性化的屏蔽英文廣告了,既不影響正常交流的純英文評論也不必受到垃圾英文評論的侵擾了。

function wxd_comment_post( $incoming_comment ) {
$http = '/[<|KTV|ッ|の|ン|優|業|グ|貿|]/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', 'wxd_comment_post');

然後將以上代碼都加到當前主題的 functions.php 文件即可屏蔽所有的日語和英語的垃圾評論了。