今天又在晨岩兄那白嫖了一招,屏蔽纯英文评论,虽然目前我没有发现有垃圾评论,但是还是要记录下来,防患于未然吧。

在主题的functions.php文件里:

/**
 * WordPress评论必须包含中文
 */
function refused_spam_comments( $comment_data ) { 
  $pattern = '/[一-龥]/u'; 
  if(!preg_match($pattern,$comment_data['comment_content'])) { 
  wp_die('评论必须含中文!'); 
} 
  return( $comment_data ); 
} 
add_filter('preprocess_comment','refused_spam_comments');

代码中[一-龥]这个正则表达式代表所有中文,辰岩兄测试下来完全有效!

———————————2022.1.17日新增内容:

新增一个不错的代码,可以屏蔽 纯英文、日文、俄罗斯语、阿拉伯语、泰文的垃圾评论,超级棒,超级推荐!

/**
 * WordPress评论必须包含中文
 */
function pwsz_comment_post( $incoming_comment ) {
$pattern = '/[一-龥]/u';
$jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';
$ruattern ='/[А-я]+/u';
$arattern ='/[؟-ض]+|[ط-ل]+|[م-م]+/u';
$thattern ='/[ก-๛]+/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!日本語出て行け!" );
}
if(preg_match($ruattern, $incoming_comment['comment_content'])){
err( "北方野人讲的话我们不欢迎!Russians, get away!Savage выйти из Русского Севера!" );
}
if(preg_match($arattern, $incoming_comment['comment_content'])){
err( "不要用阿拉伯语!Please do not use Arabic!!من فضلك لا تستخدم اللغة العربية" );
}
if(preg_match($thattern, $incoming_comment['comment_content'])){
err( "人妖你好,人妖再见!Please do not use Thai!กรุณาอย่าใช้ภาษาไทย!" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'pwsz_comment_post');