WordPress 垃圾评论阻止

又一法阻止垃圾评论,原理很简单,前台Js添加一个隐藏域,并添加一个值,提交表单时检验该值是否存在来判断是否是垃圾评论。

以下代码塞主题function.php里,


//垃圾评论校验
function preprocess_comment_spam($commentdata){
  //管理员直接通过
  if (is_admin()) {
    return $commentdata;
  }
  //不包含英文拒绝
  if(!preg_match('/[一-龥]/u',$commentdata['comment_content'])){
    wp_die('错误:评论内容必须包含中文。');
  }
  //校验码错误拒绝
  if (!empty($_POST['comment_auth']) && $_POST['comment_auth'] == md5('E5X14f'.date("Y-/#/n"))) {
    return $commentdata;
  }else{
    wp_die('错误:您必须启用Javascritp才能发表评论。');
  }
}
add_action('preprocess_comment', 'preprocess_comment_spam');

以下是放在表单区域的,引入jQuery库和MD5的库。


 //comment_spam
      $("#commentform").submit(function () {
       if ($("input#comment_auth").length==0) {
         var auth_date = new Date();
         var auth_key = $.MD5("E5X14f"+auth_date.getFullYear()+"-/#/"+(auth_date.getMonth()+1));
         var auth = "<input id="comment_auth" name="comment_auth" type="hidden" value=""+auth_key+"" />";
         $(this).append(auth);
       };
      });

0 thoughts on “WordPress 垃圾评论阻止
添加一条新回复 回到顶部

亲爱的,主人已经关闭了这篇文章的评论 。