欢迎莅临阿Q的项目

专业WP商业设计开发销售中心

[免插件]为WordPress评论表单添加验证码校验

最近老有垃圾评论进来,而且看规律貌似是用机器人发的,虽然我安装了 Akismet 插件,但是只能帮助校验垃圾评论。网上搜索一下,一个好的博客一天的垃圾评论可能数千,想想每天要删除上千的垃圾评论,真是一件令人郁闷的事。
验证码
Captcha验证码

最近老有垃圾评论进来,而且看规律貌似是用机器人发的,虽然我安装了 Akismet 插件,但是只能帮助校验垃圾评论。网上搜索一下,一个好的博客一天的垃圾评论可能数千,想想每天要删除上千的垃圾评论,真是一件令人郁闷的事。

未雨绸缪,我决定为评论表单添加验证码校验功能。

网上搜索了一下,选中了一个开源的以jQuery为基础的验证码程序 Ajax Fancy Captcha.

下面我来讲述一下如何将这个验证码程序移植到wordpress模版中去。

1、将下载的 Ajax Fancy Captcha 压缩包中的 ajax-fancy-captcha-php 文件夹解压到模板根目录.

2、在 header.php 中的 <head></head>之间添加以下代码(如果模版中已经调用了jQuery,可以删除第一行,另外,formId是评论表单的id,一定要匹配):

<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/ajax-fancy-captcha-php/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/ajax-fancy-captcha-php/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: "Verify that you are a human,<br />drag <span>scissors</span> into the circle."
	});
});
</script>

3、在 comments.php 中找到提交按钮,并且按钮前加上:

<div class="ajax-fc-container">You must enable javascript to see captcha here!</div>

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');

安装验证码之后,世界终于清净了。


鉴于很多朋友问到该jQuery插件的汉化版,特将汉化好的js提供给大家:

jquery.captcha

如果喜欢本文,请分享给朋友们

[免插件]为WordPress评论表单添加验证码校验34 篇评论

  1. 昨天晚上微信邮箱插件一直提醒,后来一统计收到四、五十条垃圾评论。的确可恶啊!正需要这个,谢谢啦

  2. 评论部分做的真好,可以教我么

    我最近被导航菜单和评论部分搞的焦头烂额,想弄一个像你网站一样的导航和评论,只是我是个新手,都不懂,可以把代码给我学习一下吗?

  3. 还有提个建议,把头像缓存了吧.打开两次,卡头像卡了两次

  4. 我想知道博主边栏上那个最新发表、回复的插件叫神马……

    • 阿Q管理员

      你说的是右边栏“最新发表、最新评论、热门日志”的选项卡吗?那个不是插件,只是读出相应数据然后用jQeury的slideDown动画切换显示而已。

  5. 哇,真不错,我的博客整体都有人留垃圾评论,烦死啦这些人,唉 😡 !!搜索到你的博客的,不错!