WordPress优化技巧:非插件实现小学算术式验证功能

        昨天我在《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优化技巧,在你的博客之路上,一定可以给你一点参考吧!

注意:代码的编码要和你的一致,另外我的代码中注意下标点(将单引号和双引号都改为英文的单双引号),因为我没有安装"代码高亮"这个插件。

评论区

共 39 条评论
  1. 头像
    任鸟飞 Lv1.萍水相逢
    搞不懂 为什么要使用验证码,对用户体验相当不好。
    15年前
  2. 头像
    红心草 Lv3.点头之交
    的确是各有利弊,我觉得验证码的弊处更大。
    15年前
  3. 头像
    秦大少 Lv5.熟稔有加
    说实话,我非常讨厌验证码之类的东西!
    15年前
  4. 头像
    晴天 Lv1.萍水相逢
    不知道怎么样 我是没打算用的啦
    15年前
  5. 头像
    ifenwen Lv5.熟稔有加
    不错 不过还是不准备用了
    15年前
  6. 头像
    哲哲 Lv6.推心置腹
    这个沙发我做了·我给你说事情又得托两天了·最近生活很没有规律·脑子乱的呀整理不出来什么东西·
    15年前
😊