Plugin Directory


Integrates reCAPTCHA anti-spam methods with WordPress including comment and registration spam protection.

= Version 4.0 * Upgrade to reCAPTCHA V2. * Increase supported languages to 40+. = Version 3.2 * Transferred ownership back to Google

Version 3.1.6

  • WordPress MS fixes. Should now work out of the box at the individual blog level. Thanks to huyz
  • NOTICE: If anyone is interested in taking up development of this plugin, please contact me at blaenk@gmail.com.

Version 3.1.5

  • Thanks to Ken Newman for these changes
  • Update author website
  • Stop generating javascript errors on unnecessary pages
  • Better SSL support

Version 3.1.4

  • Fixed an XSS vulnerability

Version 3.1.3

  • Added a collision aversion prefix to the Plugin class. bbouton from github alerted me to a collision between WP-reCAPTCHA's plugin class and the JW Player Plugin's Plugin class.

Version 3.1.2

  • Fixed option migration. The plugin was actually written to be made to import the old options, but the hook that functionality was registered to does not fire when the wordpress interface updates a plugin, only when a plugin is updated manually. Now the plugin will import or register default options as long as the options don't already exist.
  • Fixed a case where recaptcha theme would not change. This happened because of the above problem, creating a situation in which the tab index field could be empty, and being empty this then caused a problem with the recaptcha options when they were output to the page. If you're running version 3.0 of the plugin, go ahead and add a number to the tab index (e.g. 5 for comments, 30 for registration), if not, this plugin should automatically fix it next time you change save the settings.
  • Modified the options page submit buttons to more explicitly show that they are specific to their own respective sections, that is, one button ONLY saves the changes for one reCAPTCHA, and the other ONLY saves the changes for MailHide.

Version 3.0

  • Rewrote the entire plugin in an object-oriented manner with separation of concerns in mind to increase maintainability and extensibility
  • Implemented the ability to import the options from the option set of older versions of the plugin, such as and less
  • Redesigned the options page for the plugin, now using newer wordpress options/form functionality with support for input-validation
  • Options for recaptcha and mailhide are independent of each other
  • Added support for localization, using gettext
  • Fixed the issue where comments would not be saved if the reCAPTCHA was entered incorrectly (or not entered at all). requires javascript
  • Fixed an issue where saved comments (from bad reCAPTCHA response) would replace double quotes with backslashes
  • Fixed an issue in wordpress 3 and above in which mailhide would not work due to interference with a new filter, make_clickable, which auto-links emails and URLs
  • Fixed a role-check issue in wordpress 3 and above. level_10 (and all levels for that matter) have been deprecated. now using activate_plugins instead.


  • Fixed a bug with WordPress 3.0 Multi-Site

Version 2.9.8

  • Added support for WordPress 3.0 Multi-Site thanks to Tom Lynch

Version 2.9.7

  • Fixed a relatively new critical bug which marked new comments as spam regardless of reCAPTCHA response

Version 2.9.6

  • Fixed a careless bug affecting custom hidden emails
  • Fixed broken links in readme.txt

Version 2.9.5

  • Added flexibility to the enabling of MailHide. Can now separately choose to enable/disable MailHide for posts/pages, comments, RSS feed of posts/pages, and RSS feed of comments
  • Fixed an 'endless redirection' bug thanks to Edilton Siqueira
  • Fixed a bug in WPMU where wp-admin/user-new.php kept trying to validate the user registration with reCAPTCHA information despite not having shown the reCAPTCHA form, thanks to Daniel Collis-Puro for letting me know
  • Added a line break after the reCAPTCHA form to add some padding space between it and the submit button. Due to popular demand
  • Fixed a validation problem where a style attribute was missing. Thanks to nv1962
  • Public and Private keys are now trimmed since they are usually pasted from the recaptcha site, to avoid any careless errors
  • Fixed the regular expressions for matching the emails, email@provider.co.uk type emails now work

Version 2.9.4

  • Fixed a bug where the comment would not be saved if the CAPTCHA wasn't entered correctly. Thanks to Justin Heideman.

Version 2.9.3

  • Fixed the recaptcha_wp_saved_comment function. Thanks to Tomi M.

Version 2.9.2

  • 'Beautified' the options page.
  • Added two options to allow users to enter their own custom error messages. Also good for foreign language support.
  • Fixed a conflict bug with the OpenID plugin where the reCAPTCHA form would show under the OpenID section in the registration form.
  • Added two new options which allow one to choose the text to be shown for all hidden Emails and/or the title of the link.
  • Fixed a 'Could not open socket' error in recaptchalib.php. Bug ID 26
  • Fixed a WPMU issue where blog registrations weren't possible due to a redirection to the first step in the registration process. Thanks to Edward.

Version 2.9.1

  • Forgot that if you can see emails in their true form, then you shouldn't have to see the [nohide][/nohide] tags either. Fixed.

Version 2.8.6

  • Administration interface is now integrated with 2.5's look and feel. Thanks to Jeremy Clarke.
  • Users can now have more control over who sees the reCAPTCHA form and who can see emails in their true form (If MailHide is enabled). Thanks to Jeremy Clarke.
  • Fixed a very stupid (One character deal) fatal error on most Windows Servers which don't support short tags (short_open_tag). I'm speaking of the so called 'Unexpected $end' error.
  • Accommodated for the fact that in +2.6 the wp-content folder can be anywhere.

Requires: 2.7 or higher
Compatible up to: 2.9.2
Last Updated: 1 year ago
Active Installs: 80,000+


3.7 out of 5 stars


0 of 3 support threads in the last two months have been resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
1 person says it's broken.

50,10,5 0,2,0 0,2,0
75,4,3 0,2,0 0,2,0
100,10,10 33,3,1 0,2,0
71,7,5 65,17,11 0,2,0
71,17,12 0,2,0
60,15,9 50,2,1 70,33,23
100,3,3 0,2,0
70,20,14 0,1,0
43,7,3 0,2,0 100,1,1 63,8,5
100,1,1 36,14,5
22,18,4 0,1,0
57,28,16 100,1,1
60,15,9 0,3,0 93,14,13
50,2,1 100,1,1
100,1,1 100,5,5
100,1,1 50,2,1 100,3,3