Dieses Tutorial zeigt, wie Googles Recaptcha in ein WordPress -Registrierungsformular in die Bekämpfung von Spam -Registrierungen integriert wird. Wir nutzen die WordPress HTTP -API, um die Benutzerantworten zu überprüfen.
Schlüsselkonzepte:
Warum Recaptcha verwenden
Die Beliebtheit vonWordPress macht es zu einem Hauptziel für Bots, die zahlreiche Spam -Konten erstellen. Recaptcha bietet eine robuste Lösung für dieses Problem.
Plugin -Entwicklungsschritte:
RECAPTCHA -Tasten erhalten: Registrieren Sie Ihre Domain auf der Recaptcha -Website (Recaptcha v2 wird empfohlen) und erhalten Sie Ihren Site -Schlüssel und Ihren geheimen Schlüssel.
Plugin -Header: Starten Sie Ihre Plugin -Datei (recaptcha-registration.php
) mit dem Standard -Plugin -Header:
<?php /** * Plugin Name: reCAPTCHA Registration * Plugin URI: [Your Plugin URI] * Description: Adds reCAPTCHA to the WordPress registration form. * Version: 1.0.0 * Author: [Your Name] * Author URI: [Your Website] * License: GPL2 * License URI: https://www.gnu.org/licenses/gpl-2.0.html * Text Domain: recaptcha-registration */
class reCAPTCHA_Registration { private $site_key; private $secret_key; public function __construct() { $this->site_key = '[YOUR_SITE_KEY]'; // Replace with your site key $this->secret_key = '[YOUR_SECRET_KEY]'; // Replace with your secret key add_action('register_form', array($this, 'display_recaptcha')); add_action('registration_errors', array($this, 'validate_recaptcha'), 10, 3); } public function display_recaptcha() { ?> <🎜> <div class="g-recaptcha" data-sitekey="<?php echo $this->site_key; ?>" data-callback="recaptchaCallback"></div> <🎜> <input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response"> <?php } public function validate_recaptcha($errors, $sanitized_user_login, $user_email) { $response = isset($_POST['g-recaptcha-response']) ? $_POST['g-recaptcha-response'] : null; if (empty($response)) { $errors->add('empty_recaptcha', __('Please complete the reCAPTCHA.', 'recaptcha-registration')); } else { $verify_response = $this->verify_recaptcha($response); if (!$verify_response['success']) { $errors->add('invalid_recaptcha', __('Invalid reCAPTCHA response.', 'recaptcha-registration')); } } } private function verify_recaptcha($response) { $url = 'https://www.google.com/recaptcha/api/siteverify'; $data = array( 'secret' => $this->secret_key, 'response' => $response, 'remoteip' => $_SERVER['REMOTE_ADDR'] ); $response = wp_remote_post($url, array('body' => $data)); return json_decode(wp_remote_retrieve_body($response), true); } } new reCAPTCHA_Registration();
recaptcha-registration.php
in Ihr /wp-content/plugins/
Verzeichnis und aktivieren Sie es in Ihrem WordPress -Administratorfeld. Denken Sie daran, die Platzhalterschlüssel durch Ihre tatsächlichen Schlüssel zu ersetzen. Screenshot des geschützten Registrierungsformulars:
Diese verbesserte Version verwendet das neuere Recaptcha V2 und das asynchrone Laden, um eine bessere Leistung und Benutzererfahrung zu erhalten. Es umfasst auch Fehlerbehebung und Internationalisierung. Denken Sie daran, die plattenden Platzhalter durch Ihre tatsächlichen Recaptcha -Schlüssel zu ersetzen. Dieser Code ist prägnanter und effizienter als das ursprüngliche Beispiel.
Das obige ist der detaillierte Inhalt vonIntegration eines Captcha in das WordPress -Registrierungsformular. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!