wordpress 验证码 防止垃圾评论(算术验证)
评论这块不注意的话,有人就会随意发广告,整天管理员就会花大量时间来处理这些垃圾评论,这是很头疼的问题,所以在wordpress中,解决防止垃圾评论这个是很有必要的,当然,在wordpress中,早就想了N多的方法来防止垃圾评论,如网上提到的Akismet插件,用的人很多都说效果不是很理想。而且我用这个的时候,提示您必需 输入一个 WordPress.com API key来使其工作。而我去网站注册的时候,老是注册不上,网站N久都打不开,想想算了,反正现在评论也没有,呵呵。
但最后想想,还是要有一个办法来解决,Google 一下‘WordPress 反垃圾评论插件’可以查出N多来,最后看了看,还是搞个算术验证码吧,呵呵,其中有一款是算术验证插件:Math Comment Spam Protection 网上评价也挺好的,但看了看我安装的插件,已经很多了,想想还是改写源代码吧,网上提供的方法也有的是,下面就是一种(来自www.fufuok.com):
到wordpress安装目录下找到文件wp-comments-post.php打开并进行下面修改:在文件内容中查找
<span style="color: #0000ff;">if ( '' == $comment_content )</span>
在它的上面添加代码:
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.') );
}
}
然后修改你现在用的主题目录下的 comments.php (我用的 iNove如果有留言板那你还需要修改对应的留言板模版) ,在适当的位置添加代码,我是在提交按钮之前添加的,即查找:
<input name="submit" type="submit" id="submit" class="button"
在其前面添加代码:
<?php $aaa=rand(0,5); $bbb=rand(3,9); ?>
<?php 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 type="hidden" name="aaa" value="<?php echo $aaa; ?>" />
<input type="hidden" name="bbb" value="<?php echo $bbb; ?>" />
如果你的主题不是 iNove 的话下面这段代码要做相应的修改或删除,这段代码的意思是“(必填)”需要对应模板的语言。
<?php if ($req) _e('(required)', 'inove'); ?>
这样修改之后回到评论页面,你应该就可以看到效果了,这种wordpress验证码对防止垃圾评论起到了一定作用。相信评论的博友也不会介意提交前做个算术题,呵呵….
声明:转载原创文章时请注明:
文章转载自:快乐心情, 原文地址:wordpress 验证码 防止垃圾评论(算术验证)
留言 没有验证啊