给WordPress添加验证码解决垃圾评论的方法

wordpress博客优化2015-04-09

作者: Duter2016 | 2019-11-04 | 阅读
「编辑」 「本文源码」

WordPress虽然功能非常之强大,但是有很多的功能是没有实现的,好多的站长朋友的站点只要开启了评论的,但是呢没有过多久数据库就爆满了,被不法人员刷了评论,为了防止这样的垃圾评论,我们只有添加验证码才能解决这个问题,好了也不用多说什么废话了,下面就看看怎么去做到这一步的吧!

1、首先我们要解决这样的问题,我们就要想想在哪里找到这样的问题,怎么去添加,那么就需要找到评论那个页面的地方去添加相应的代码,既然这样那么我们就需要看看wordpress开发技术文档了。

2、wordpress4.3.1及以下版本修改wordpress主目录下面的wp-comments-post.php文件,在if ( ” == $comment_content )前面加入如下代码:

if ( !$user->ID ) {
$a = trim($_POST[a]);
$b = trim($_POST[b]);
$result = trim($_POST[result]);
if ((($a+$b)!=$result)|| empty($result)){
wp_die( __('验证码输入不正确,请返回重新输入验证码再提交留言!') );
}
}

wordpress 4.4及以上版本中,wordpress主目录下面的wp-comments-post.php文件,和wp-includes目录下的comment.php文件都发生改变,原本wordpress主目录下面的wp-comments-post.php文件里if ( ” == $comment_content )相关代码转移到了wp-includes目录下的comment.php文件中。另外,wordpress 4.4中把以前版本中的wp_die改为了WP_Error(这一项不需要修改),此时,如果再修改的话需要修改wp-includes目录下的comment.php文件,在if ( ” == $comment_content )前面加入如下代码:

if ( !$user->ID ) {
$a = trim($_POST[a]);
$b = trim($_POST[b]);
$result = trim($_POST[result]);
if ((($a+$b)!=$result)|| empty($result)){
wp_die( __('验证码输入不正确,请返回重新输入验证码再提交留言!') );
}
}

3、wordpress4.3.1及以下版本用户,修改wordpress主题目录下面的comments.php文件,在提交按钮前面加上如下代码:

<?php $a=rand(0,10); $b=rand(0,10); ?>
<p><br></p><p><input type="text" name="result" id="result" size="22" tabindex="5" />
<input type="hidden" value="<?php echo $a ?>" name="a" />
<input type="hidden" value="<?php echo $b ?>" name="b" />
<small>验证码</small><label style=”background:#ff0000; color:#ffffff;”>Code (<?php echo $a ?>+<?php echo $b ?>=?)</label></p>

wordpress4.4及以上版本用户,修改wordpress主题目录下面的comments.php文件,在提交按钮前面加上如下代码:

<?php $a=rand(0,10); $b=rand(0,10); ?>
<p><br></p><p><input type="text" name="result" id="result" size="22" tabindex="5" onblur="if(this.value == '')this.value='登录用户无需填写';"
onclick="if(this.value == '登录用户无需填写')this.value='';" value="登录用户无需填写" />
<input type="hidden" value="<?php echo $a ?>" name="a" />
<input type="hidden" value="<?php echo $b ?>" name="b" />
<small>验证码</small><label style=”background:#ff0000; color:#ffffff;”>Code (<?php echo $a ?>+<?php echo $b ?>=?)</label></p>

这样就可以了。

:wordpress 4.4中经过修改后,验证码对于登陆的用户评论时是不起作用的,而对于没有登录的游客可以起作用。网上的其他通过functions.php添加验证码方法已经失效无法使用,另外网上的很多文章里的相关代码都存在错误。


版权声明:本文由 Duter2016 在 2019年11月04日发表。本文采用CC BY-NC-SA 4.0许可协议,非商业转载请注明出处,不得用于商业目的。
文章题目及链接:《给WordPress添加验证码解决垃圾评论的方法》




  相关文章:

「游客及非Github用户留言」:

「Github登录用户留言」:

TOP