纯代码实现 WordPress 后台登录添加验证码功能(实测有效)
最近换了主题,原来的验证码不能用了。所以又折腾给 WordPress 登录后台添加一个字符图片验证码功能,网上的需要调用gd库,大多数虚拟主机都不支持,而且安装非常麻烦。所以本站使用了以下代码,虽然不太美观,但是可以完美实现,感兴趣的小伙伴可以自己折腾一下。
要为 WordPress 后台登录页面添加验证码功能,可以使用以下步骤实现:
1. 添加验证码字段
将以下代码添加到你的主题的 functions.php 文件中:
function add_captcha_to_login_form() {
.
$num1 = rand(1, 9);
.
$num2 = rand(1, 9);
.
echo "<p>
.
<label for='math' class='small'>验证码: </label>
.
<br />
.
<input type='text' name='captcha' placeholder='$num1 + $num2 = ?' class='input' size='25' tabindex='4'>
.
<input type='hidden' name='num1' value='$num1'>
.
<input type='hidden' name='num2' value='$num2'>
.
</p>";
.
}
.
add_action('login_form', 'add_captcha_to_login_form');
2. 验证用户输入的验证码
继续在 functions.php 中添加以下代码:
function validate_captcha_on_login($user, $username, $password) {
.
if (isset($_POST['captcha'], $_POST['num1'], $_POST['num2'])) {
.
$sum = intval($_POST['captcha']);
.
$num1 = intval($_POST['num1']);
.
$num2 = intval($_POST['num2']);
.
if ($sum !== ($num1 + $num2)) {
.
return new WP_Error('captcha_error', '<strong>错误</strong>: 验证码错误, 请重试.');
.
}
.
} else {
.
return new WP_Error('captcha_error', '<strong>错误</strong>: 验证码未正确提交,请重试.');
.
}
.
return $user;
.
}
.
add_filter('authenticate', 'validate_captcha_on_login', 30, 3);
3. 测试功能
确保代码已经正确放置并清除浏览器缓存,然后尝试登录,以确认验证码功能正常工作。
注意事项
- 备份文件:在修改 functions.php 前,请备份你的文件。
- 插件兼容性:确保此功能与其他登录相关插件兼容。
- 安全考虑:虽然简单的数学验证码可以防止一些自动化攻击,但建议结合其他安全措施使用。
- 本站推荐使用WPCode Lite插件而不是改主题文件,因为大多数直接改主题文件不生效。
阅读剩余
版权声明:
作者:心语家园
链接:https://www.xinyucn.cc/2025/08/chundaimashixian-wordpress-houtaidenglutianjiayanzhengmagongnengshiceyouxiao.html
文章版权归作者所有,未经允许请勿转载。
THE END