方法如下:
修改 wp-comments-post.php :
找到下面这行代码:
if ( '' == $comment_content )
在这行上面添加:
//Fufu_checkcode
if ( !$user->ID ) {
$aaa = trim($_POST[aaa]);
$bbb = trim($_POST[bbb]);
$subab = trim($_POST[subab]);
if((($aaa+$bbb)!=$subab)|| empty($subab)){
wp_die( __('Error: Please enter the correct results of the math problems.') );
}
}
//Fufu_end
然后修改当前主题目录下的 comments.php (我用的 iNove) ,在适当的位置添加代码,我是在提交按钮之前添加的,即查找:
<input name="submit" type="submit" id="submit" class="button" tabindex="5" value="<?php _e('Submit Comment', 'inove'); ?>" />
在其前面添加代码:
<?php $aaa=rand(0,5); $bbb=rand(3,9); echo $aaa; ?>+<?php echo $bbb; ?>=
<input type="text" name="subab" id="subab" class="textfield"
size="2" tabindex="5" style="width:20px" />
<?php if ($req) _e('(required)', 'inove'); ?>
<input name="aaa" value="<?php echo $aaa; ?>" type="hidden" />
<input name="bbb" value="<?php echo $bbb; ?>" type="hidden" />
如果你的主题不是 iNove 的话,下面这段代码要做相应的修改,把inove改成相应的主题名就ok了,这段代码的意思是显示“(必填)”两字,需要对应的语言。
<?php if ($req) _e('(required)', 'inove'); ?>
» 转载请注明来源:www.litefeel.com » 《WordPress无插件实现防止垃圾评论算术验证码》
» 本文链接地址:https://www.litefeel.com/wp-arithmetic-captcha/
» 订阅本站:www.litefeel.com/feed/
» Host on Linode VPS
» 本文链接地址:https://www.litefeel.com/wp-arithmetic-captcha/
» 订阅本站:www.litefeel.com/feed/
» Host on Linode VPS
This post was last modified on 2019 年 03 月 04 日 01:07
View Comments (12)
@web前端开发
现在我把验证码去掉了
为什么不起作用,不填验证也能提交?
我来试试!
我悄悄的,正如我悄悄的离开!神经大爆炸 带走任何有用的资源,不忘留下痕迹!现在是北京时间:22:59:09
@天空
你网站地址是什么,我看看是哪里写错了。
加了代码,也可以显示,但验证总是提示错误!
@测试评论
把验证码给去掉了。
好像没看见算术验证码
...............
学习了,留着备用,呵呵。
:twisted: :twisted: 我用akismet
test :grin: