首页 > Wordpress > WordPress中添加以jQuery为基础的评论验证码(非插件)

WordPress中添加以jQuery为基础的评论验证码(非插件)

前面写了一篇 WordPress中添加验证码详细步骤(sidxspam插件 inove主题),该方法是以 sidxspam 插件的方式来实现简单的四位随机数字组成的验证码,有很多朋友不喜欢插件方式,恰巧前几天看了一篇别人的文章,就是以jQuery为基础的,非插件评论验证码,很不错,下面讲下配置步骤。

===================================================================

1、将 Ajax Fancy Captcha 下载到主题目录下,并解压开;
2、在 heard.php 中的

<head> 
...
<!-- script START -->
这里...
<!-- script END -->
...
<head/>

添加

<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/ajax-fancy-captcha-php/latest-jquery/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/ajax-fancy-captcha-php/latest-jquery-ui/jquery-ui-1.7.2.custom.min.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/ajax-fancy-captcha-php/captcha/jquery.captcha.js"></script>
<link href="<?php bloginfo('template_directory'); ?>/ajax-fancy-captcha-php/captcha/captcha.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" charset="utf-8">
$(function() {
    $(".ajax-fc-container").captcha({
        borderColor: "silver",
        captchaDir: "<?php bloginfo('template_directory');  ?>/ajax-fancy-captcha-php/captcha/",
        url: "<?php bloginfo('template_directory');  ?>/ajax-fancy-captcha-php/captcha/captcha.php",
        formId: "commentform",
        text: "下面是评论验证码,请用鼠标<br />将 <span>scissors</span> 拖进右边的圆框中即可!"
    });
});
</script>

3、修改 comments.php 文件,在提交按钮上添加如下代码

<div class="ajax-fc-container">您必须启用 javascript 才能在这儿看到验证码!</div>

如果之前有朋友按照那篇 sidxspam 插件文章操作过的,那么在这里可以将

<?php do_action('comment_form', $post->ID); ?>

代码删掉,用上面的那行代码替换掉也行。

4、修改 functions.php 文件,在下方合适位置添加

function wxq_preprocess_comment($comment) {
    if(!session_id()) session_start();
    if($_POST['captcha'] && $_POST['captcha'] == $_SESSION['captcha']){
        unset($_SESSION['captcha']);
        return($comment);
    } else wp_die( __("Error: please drag the captcha.") );
}
add_action('preprocess_comment', 'wxq_preprocess_comment');

5、下载 jquery.captcha 中文插件。
解压缩后,将 jquery.captcha.js 文件,替换主题目录下的/ajax-fancy-captcha-php/captcha/ 目录下 jquery.captcha.js 文件。

喜欢英文模式的朋友,可以将上面代码的中文换成英文即可,并且不用做第5步的汉化工作。

===================================================================
原方法参考链接:阿Q的项目
===================================================================



转载本站文章请注明,来自: Edward's Blog

本文链接: http://www.edward-han.com/137.html

分类: Wordpress 标签:
  1. 2010年12月10日18:14 | #1

    我现在的问题是代码里写的中文服务器认不出来。。
    全是?????????,等俺小站解决了再来用这方法

  2. 2010年12月10日19:40 | #2

    好麻烦啊!
    你的验证码很有意思啊

  3. 2010年12月12日01:02 | #3

    还有这样的验证码,涨见识了

  4. Edward_Han
    2010年12月14日10:00 | #4

    @ikantu
    其实也不算太麻烦~~
    这个验证码确实比较新颖,既解决了机器人访问,也解决了访客手动输入验证码的麻烦,同时增加了趣味性,所以比较喜欢。

  5. Edward_Han
    2010年12月14日10:01 | #5

    @Dianso
    是阿是阿,只有想不到,没有做不到哇~~~

  6. 2011年2月16日16:18 | #6

    我刚刚用ie6测试了,该验证码测试不通过..

  7. 测试
    2011年3月2日19:15 | #7

    test….

  8. Edward_Han
    2011年3月3日09:21 | #8

    @测试
    Return OK~

  9. 2011年9月23日19:04 | #9

    好像在ajax评论模式下无法提交评论啊

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
您必须启用 javascript 才能在这儿看到验证码!

无觅相关文章插件,快速提升流量

加载中……