这篇文章距离上次修改已过半年,其中的信息可能已经有所发展或是发生改变。

转换为语音并朗读全文 00:00 / 00:00

20130808112453

上次博主已经从小蝴蝶那里转载了这篇文章:从根源上拒绝wordpress黑名单评论
用起来效果还可以,但是还是抵挡不住垃圾日文评论。

下面我介绍一个方法,彻底让日文评论消失!

如果您的博客没有禁止全英文评论的代码,请将下面代码贴到functions.php里面,

注:本站使用comments-ajax.php处理提交,用err输出错误信息,
如果贵站没有使用comments-ajax.php,那么请用wp_die输出错误信息!
方法:将下面所有的err换成wp_die!否则会出现500错误!
// 禁止全英文和日文评论
function BYMT_comment_post( $incoming_comment ) {
$pattern = '/[一-龥]/u';
$jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';
if(!preg_match($pattern, $incoming_comment['comment_content'])) {
err( "写点汉字吧,博主外语很捉急! Please write some chinese words!" );
}
if(preg_match($jpattern, $incoming_comment['comment_content'])){
err( "日文滚粗!Japanese Get out!日本語出て行け!" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'BYMT_comment_post');

如果您的博主已经有禁止全英文评论的代码了,那么就贴上:

// 禁止日文评论
function BYMT_comment_jp_post( $incoming_comment ) {
$jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';
if(preg_match($jpattern, $incoming_comment['comment_content'])){
err( "日文滚粗!Japanese Get out!日本語出て行け!" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'BYMT_comment_jp_post');

配合给wordpress评论加上最少最多字数限制使用,效果更佳!

具体效果,大家可以在本文发送日文评论测试一下!

感谢Chris提供更多过滤规则:

//禁止北方野蛮人留言(俄语)
function BYMT_comment_ru_post( $incoming_comment ) {
$ruattern ='/[А-я]+/u';
if(preg_match($ruattern, $incoming_comment['comment_content'])){
err( "北方野人讲的话我们不欢迎!Russians, get away!Savage выйти из Русского Севера!" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'BYMT_comment_ru_post');
//禁止朝鲜半岛幸福人民留言(朝鲜语/韩语)
function BYMT_comment_kr_post( $incoming_comment ) {
$krattern ='/[갂-줎]+|[줐-쥯]+|[쥱-짛]+|[짞-쪧]+|[쪨-쬊]+|[쬋-쭬]+|[쵡-힝]+/u';
if(preg_match($krattern, $incoming_comment['comment_content'])){
err( "不要用韩语/朝鲜语思密达!Please do not use Korean!하시기 바랍니다 한국 / 한국어 사용하지 마십시오!" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'BYMT_comment_kr_post');
//禁止真主阿拉留言(阿拉伯语,部分)
function BYMT_comment_ar_post( $incoming_comment ) {
$arattern ='/[؟-ض]+|[ط-ل]+|[م-م]+/u';
if(preg_match($arattern, $incoming_comment['comment_content'])){
err( "不要用阿拉伯语!Please do not use Arabic!!من فضلك لا تستخدم اللغة العربية" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'BYMT_comment_ar_post');
//禁止人妖部落留言(泰语)
function BYMT_comment_th_post( $incoming_comment ) {
$thattern ='/[ก-๛]+/u';
if(preg_match($thattern, $incoming_comment['comment_content'])){
err( "人妖你好,人妖再见!Please do not use Thai!กรุณาอย่าใช้ภาษาไทย!" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'BYMT_comment_th_post');
本站只开启了英文和日文垃圾评论,其他的欢迎到Chris的博客测试~
带符号 * 的表示必填项
  1. 卡奥尼特
    卡奥尼特

    咦?不能整合为一个代码吗?总觉得一个个加好麻烦。哭哭

    回复
  2. 那里来的这么多日文广告
    那里来的这么多日文广告

    请来我的博客来看看 woyaoaiai.net

    日本评论广告一抹多

    删都删不完

    尼玛 日本发外联居然发到我这里来了

    回复
  3. sojh
    sojh

    这个很好用啊!之前被日语广告弄到很烦="=
    感谢教程!wp新手在别处看到代码可是不知道要加在哪里_(:з」∠)_

    回复
  4. s
    s

    asd

    回复
  5. xilouqingzhu
    xilouqingzhu

    貌似人气挺旺的。

    回复
  6. cuelog
    cuelog

    如果有心看下以前的垃圾评论,可以知道基本上所有垃圾评论来自 traceback,只要观察下垃圾评论内容的规律,再判断是否来自traceback 的评论内容即可,如果不接受traceback和pingback的评论,后台关闭之应该就没有spam了..
    之前我每天收到500条左右的spam,现在全都灭绝了... :lol:

    回复
  7. 萨龙龙
    萨龙龙

    好方法啊,之前有屏蔽英文垃圾,确被日文垃圾狠狠的骚扰,现在解决了这个烦恼,博主还提供了这么多语言的垃圾屏蔽,赞一个。

    回复
  8. JOKO
    JOKO

    确实不错,效果明显,问题是,我加入这段代码后,我所有后台操作的按钮保存都会空白,返回却已经生效。。。。怎么解决?我的主题没有functions.php,我自己自定义加上,但后台任何操作提交,都是空白。

    回复
    1. 麦田一根葱
      麦田一根葱博主

      这个...

      回复