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

在主题的functions.php文件里:

  1. /**
  2. * WordPress评论必须包含中文
  3. */
  4. function refused_spam_comments( $comment_data ) {
  5. $pattern = '/[一-龥]/u';
  6. if(!preg_match($pattern,$comment_data['comment_content'])) {
  7. wp_die('评论必须含中文!');
  8. }
  9. return( $comment_data );
  10. }
  11. add_filter('preprocess_comment','refused_spam_comments');

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

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

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

  1. /**
  2. * WordPress评论必须包含中文
  3. */
  4. function pwsz_comment_post( $incoming_comment ) {
  5. $pattern = '/[一-龥]/u';
  6. $jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';
  7. $ruattern ='/[А-я]+/u';
  8. $arattern ='/[؟-ض]+|[ط-ل]+|[م-م]+/u';
  9. $thattern ='/[ก-๛]+/u';
  10. if(!preg_match($pattern, $incoming_comment['comment_content'])) {
  11. err( "写点汉字吧,博主外语很捉急! Please write some chinese words!" );
  12. }
  13. if(preg_match($jpattern, $incoming_comment['comment_content'])){
  14. err( "日文滚粗!Japanese Get out!日本語出て行け!" );
  15. }
  16. if(preg_match($ruattern, $incoming_comment['comment_content'])){
  17. err( "北方野人讲的话我们不欢迎!Russians, get away!Savage выйти из Русского Севера!" );
  18. }
  19. if(preg_match($arattern, $incoming_comment['comment_content'])){
  20. err( "不要用阿拉伯语!Please do not use Arabic!!من فضلك لا تستخدم اللغة العربية" );
  21. }
  22. if(preg_match($thattern, $incoming_comment['comment_content'])){
  23. err( "人妖你好,人妖再见!Please do not use Thai!กรุณาอย่าใช้ภาษาไทย!" );
  24. }
  25. return( $incoming_comment );
  26. }
  27. add_filter('preprocess_comment', 'pwsz_comment_post');