• 欢迎光临flyzy小站!分享一些学习路上遇到的坑坑洼洼~

adad

WordPress评论非插件添加验证

这几天垃圾评论突然多了起来,虽然都被WordPress拦截到了未审核里,但是看到每天几十条全是链接的垃圾评论还是闹心。所以想加个评论验证码,过滤下垃圾评论。用的方法是添加了一个简单的数学算式,算对了才能发送评论,老规矩,非插件版~

 

先给你们感受下这两天小站收到的垃圾评论,全都是国外的,各种链接评论,简直丧心病狂:

rubbish-response

 

添加方法很简单:

1.在评论页面(一般是comments.php)添加对应的数字验证UI代码:

	$num1=rand(0,9);
	$num2=rand(0,9);
	echo "<label for=\"math\">请输入 <i>$num1 + $num2 = ?</i> 的计算结果:</label>\n";
	echo "<input type=\"text\" name=\"sum\" class=\"text\" value=\"\" size=\"25\" tabindex=\"4\">\n";
	echo "<input type=\"hidden\" name=\"num1\" value=\"$num1\">\n";
	echo "<input type=\"hidden\" name=\"num2\" value=\"$num2\">";

这个根据你的主题,将这段代码放在对应位置。

 

2.在functions.php中添加WordPress提交评论时验证是否提交了算术值是否正确:

function spam_protection_pre($commentdata){
   $sum=$_POST['sum'];
   if ($sum == null) {
        wp_die('对不起: 请输入验证码。<a href="javascript:history.back(-1)">返回上一页</a>', '评论失败');
    } else {
        switch ($sum) {
            case $_POST['num1'] + $_POST['num2']:
                break;
            default:
                wp_die('对不起: 验证码错误,请<a href="javascript:history.back(-1)">返回</a>重试。', '评论失败');
        }
    }
   return $commentdata;
}

 

至此,你就成功添加了在WordPress评论时增加验证码的功能~效果如下方我的评论一样,提交评论时需要加入一个算术值~

点赞