昨天我在《WordPress免费教程(七):WordPress插件Akismet安装使用方法》中,具体讲解了过滤垃圾评论插件Akismet,但是有不少人提出了各自的观点,不少人都没有使用此插件,而是在评论内增加了验证码。我现在就来总结下使用Akismet和使用验证码的利与弊吧:
Akismet利:WordPress默认插件之一,著名的垃圾评论过滤插件。
Akismet弊:存在误断和漏断的情况,另外一点插件必然会影响到WordPress运行速度
验证码利:可以有效过滤软件类的垃圾评论
验证码弊:严重影响了用户体验,有损于博客整体形象。人工类的垃圾评论不能过滤。
既然有人说使用验证码而不使用插件,那自然有他的道理。但是老张博客在这里有个提醒,就是如果你使用了验证码,那你的验证码一定要简单。现在验证码大体是三类,一类是四位字母类,第二类是五位数字类,还有一种就是算术类的。在这里老张博客推荐你使用算术验证,即算术类的,他是随机出现两个一位数相加,让你计算出结果。选择这个的好处就是对用户体验影响不是太大,输入的位数少不会影响到用户的情绪。
那我把这个方法分享给大家:
一、修改 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( __('不好意思,请填写正确的验证码数') ); } } //Fufu_end
二、修改主题文件下的comments.php
查找
<input name="submit" type="submit" id="submit"
在其前面添加
<?php if (!$user_ID) : ?> <?php $aaa=rand(0,5); $bbb=rand(3,9); ?><?php echo $aaa; ?>+<?php echo $bbb; ?>= <input type="text" name="subab" id="subab" size="2" tabindex="5" style="width:20px" /><?php if ($req) _e('(必填)', 'inove'); ?> <input name="aaa" value="<?php echo $aaa; ?>" type="hidden" /> <input name="bbb" value="<?php echo $bbb; ?>" type="hidden" /> <?php endif; ?>
好了,完成了,测试下效果吧!我相信,这个WordPress优化技巧,在你的博客之路上,一定可以给你一点参考吧!
注意:代码的编码要和你的一致,另外我的代码中注意下标点(将单引号和双引号都改为英文的单双引号),因为我没有安装“代码高亮”这个插件。