对于wordpress垃圾评论相信很多博主都深恶痛绝,博客吧也感同身受,并通过各种方法最大可能性地防止垃圾评论,包括安装Akismet插件、关闭Trackbacks、添加算术验证码以及禁止纯英文评论、包含日文的评论,因为大部分垃圾评论都是纯英文或日文的。前面分享过禁止纯英文评论的插件Some Chinese Please,现在分享不安装插件禁止英文评论的代码。

在当前主题的functions.php文件的第一行<?php下面,添加以下代码:

  1. //屏蔽纯英文评论和纯日文
  2. function refused_english_comments($incoming_comment) {
  3.     $pattern = '/[一-龥]/u';
  4.     // 禁止全英文评论
  5.     if(!preg_match($pattern$incoming_comment['comment_content'])) {
  6.         wp_die( "您的评论中必须包含汉字!" );
  7.     }
  8.     $pattern = '/[あ-んア-ン]/u';
  9.     // 禁止日文评论
  10.     if(preg_match($pattern$incoming_comment['comment_content'])) {
  11.         wp_die( "评论禁止包含日文!" );
  12.     }
  13.     return$incoming_comment );
  14. }
  15. add_filter('preprocess_comment', 'refused_english_comments');

代码作用:评论提交时,通过正则表达式匹配评论内容,如果评论是纯英文或者包含了日文,则跳转到提示页面。添加完毕之后保存即可!如果不禁止包含日文的评论,就把上面代码的第8至12行删除。