为wordpress文章添加评论验证功能-纯代码实现

  • A+
所属分类:建站
摘要

通过纯代码的方式实现为wordpress站点添加评论验证功能,用于反垃圾评论!

1 前言

WordPress是目前主流的博客管理系统之一,许多博客网站都基于此搭建而成。文章评论区时常出现机器人的垃圾评论和一些广告链接,虽然wordpress集成了反垃圾评论的功能,例如下图:

为wordpress文章添加评论验证功能-纯代码实现

可以通过勾选该选项,让用户注册并登录后才可以发表评论,这样几乎可以避免所有垃圾评论,但同时会消耗读者的评论热情。也可以通过人工审核的方式将垃圾评论毙掉,就是每次出现垃圾评论时需要手动驳回,很麻烦。

为wordpress文章添加评论验证功能-纯代码实现

禁止评论关键字评论审核的方法无法完全屏蔽垃圾评论。

为wordpress文章添加评论验证功能-纯代码实现
为wordpress文章添加评论验证功能-纯代码实现

从源头上阻止垃圾评论是十分有必要的,即让垃圾评论无法成功提交。Wordpress中屏蔽垃圾评论的插件很多,个人认为插件能不用则不用,过多的插件会拖慢网站的加载速度。因此,下面介绍通过纯代码的方式来实现评论验证(配合上述方法一起使用,效果更佳!)。

2 实现方法

首先在博客主题下的functions.php文件中加入下列代码:

//评论验证: 计算10以内的加法
function comments_verification(){
  $num1=rand(0,9);
  $num2=rand(0,9);
  echo "<input type=\"text\" name=\"sum\" class=\"text\" value=\"\" size=\"27\" tabindex=\"4\" placeholder=\"$num1 + $num2 = ?\" >\n";
  echo "<input type=\"hidden\" name=\"num1\" value=\"$num1\">\n";
  echo "<input type=\"hidden\" name=\"num2\" value=\"$num2\">";
  //echo "<label for=\"math\">验证码</label>\n";
}
function comments_verification_pre($commentdata){
  $sum=$_POST['sum'];
  switch($sum){
    case $_POST['num1']+$_POST['num2']:
      break;
    case null:
      err('请输入计算结果!');
      break;
    default:
      err('好兄弟算错了, 请重新计算!');
  }
  return $commentdata;
}
if($comment_data['comment_type']==''){
  add_filter('preprocess_comment','comments_verification_pre');
}

接着找到同路径下的comments.php文件,并在合适的地方加入下列代码(比如"网址"输入框的下方):

<--评论验证-->
<p class="comment-form-validate">
    <label for="validate"><?php _e( '验证', 'begin' ); ?><span class="required"><?php if ($req) echo "*"; ?></span></label>
    <?php comments_verification(); ?>
</p>
为wordpress文章添加评论验证功能-纯代码实现

最后在主题样式文件style.css中加入下图框出的代码:

为wordpress文章添加评论验证功能-纯代码实现
为wordpress文章添加评论验证功能-纯代码实现

3 效果展示

效果如下图,详细使用效果可见博客底部。

为wordpress文章添加评论验证功能-纯代码实现

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: