在WordPress中添加登录验证码,可以使用插件或者手动添加代码实现。
在WordPress插件库中搜索“Google Captcha (reCAPTCHA) by BestWebSoft”,安装并启用插件。在设置中选择登录表单并选择reCAPTCHA类型(v2或v3),输入网站的网址和密钥,保存设置即可。
在当前主题的functions.php文件中添加以下代码:
function add_login_captcha() {
if ( !is_user_logged_in() ) {
wp_enqueue_script( 'google-captcha', 'https://www.google.com/recaptcha/api.js' );
}
}
add_action( 'login_enqueue_scripts', 'add_login_captcha' );
function verify_login_captcha() {
if ( isset( $_POST['log'] ) && isset( $_POST['pwd'] ) ) {
if ( !isset( $_POST['g-recaptcha-response'] ) || empty( $_POST['g-recaptcha-response'] ) ) {
wp_die( '请完成验证码以登录。' );
} else {
$secret = 'your_secret_key';
$remoteip = $_SERVER['REMOTE_ADDR'];
$response = $_POST['g-recaptcha-response'];
$url = "https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$response&remoteip=$remoteip";
$json = file_get_contents( $url );
$captcha = json_decode( $json );
if ( !$captcha->success ) {
wp_die( '验证码错误,请重新输入。' );
}
}
}
}
add_action( 'wp_authenticate', 'verify_login_captcha' );
需要将代码中的“your_secret_key”替换成在Google reCAPTCHA创建的密钥。同时,需要在登录页面的表单中添加以下代码:
<div class="g-recaptcha" data-sitekey="your_site_key"></div>
同样,需要将代码中的“your_site_key”替换成在Google reCAPTCHA创建的网站密钥。