共计 2480 个字符,预计需要花费 7 分钟才能阅读完成。
原创文章,转载请注明: 转载自cnorg.12hp.de
随着时间的推移,WordPress站点的运营会逐渐吸引一些垃圾用户或自动注册的机器人用户。为了防止这些不受欢迎的用户注册,你可以通过限制邮箱后缀的方式来实现。例如,你可以指定只允许使用 qq.com 或 163.com 等邮箱后缀的用户注册,或者禁止使用一些常见的国外垃圾邮件发送者常用的邮箱后缀。下面将提供一个详细的教程来指导你如何实现这一功能。

方案一:通过自定义代码实现限制
如果你希望在WordPress中限制用户注册时只能使用特定的邮箱后缀(比如@gmail.com),你可以通过向主题的functions.php文件添加自定义代码,或者将代码封装成插件来实现这一功能。下面提供了白名单和黑名单两种模式的示例代码,这些代码会在用户注册时检查邮箱后缀,并根据匹配结果阻止或允许注册。
接下来,我们将提供实现这一功能的代码示例,你可以根据自己的需求选择使用白名单模式或黑名单模式。
白名单模式代码示例
add_filter('registration_errors', function($errors, $login, $email){
/**
* 这里定义允许注册的邮箱后缀域名,你可以根据需要自定义添加到数组中
* 使用英文逗号分隔,引号也使用英文输入状态输入,域名字母需小写
*/
$valid_domains = ['gmail.com', 'qq.com'];
$email_domain = strtolower(substr(strrchr($email, "@"), 1));
// 如果邮箱域名不在白名单列表中
if (!in_array($email_domain, $valid_domains)){
// 这里的提示信息可以根据需要自定义替换
$msg = '本站只支持Gmail和QQ邮箱注册。';
$errors->add('domain_whitelist_error', $msg);
}
return $errors;
}, 10, 3);
黑名单模式代码示例
add_filter('registration_errors', function($errors, $login, $email) {
/**
* 这里定义不允许注册的邮箱后缀域名,你可以根据需要自定义添加到数组中
* 使用英文逗号分隔,引号也使用英文输入状态输入,域名字母需小写
*/
$restricted_domains = ['gmail.com', 'qq.com'];
$email_domain = strtolower(substr(strrchr($email, "@"), 1));
// 如果邮箱域名在黑名单列表中
if (in_array($email_domain, $restricted_domains)){
// 这里的提示信息可以根据需要自定义替换
$msg = '当前域名后缀的邮箱不允许注册。';
$errors->add('domain_blacklist_error', $msg);
}
return $errors;
}, 10, 3);
代码部署指南
代码部署可以通过在主题的functions.php文件最后添加代码来实现,或者创建一个新的PHP文件,将代码复制进去后上传到插件目录。
推荐使用插件形式部署代码
- 创建PHP文件:你可以使用代码编辑器(如Visual Studio Code、Sublime Text)或通过宝塔面板的文件管理器来创建一个新的PHP文件,并将其保存为email-domain-check.php;
- 添加代码:由于上面提供的示例代码仅为核心功能代码,你需要在新建文件的第一行添加<?php来开始PHP代码,然后从第二行开始复制上面的代码,最后根据需要替换邮箱域名和提示信息,并保存文件;
- 上传到插件目录:将文件上传到服务器的网站插件目录,通常是网站目录下的/wp-content/plugins目录,上传后的完整路径应该是/wp-content/plugins/email-domain-check.php;
- 启用插件:登录到网站后台,进入插件页面,启用你刚刚上传的插件,插件名称可以是WordPress 注册邮箱白名单或者WordPress 注册邮箱黑名单;
将代码部署到主题的functions.php文件
- 访问你的WordPress网站文件:你可以使用FTP客户端或通过网站控制面板(如宝塔)的文件管理器来访问你的WordPress站点文件;
- 编辑functions.php文件:找到你当前主题的functions.php文件,通常位于/wp-content/themes/your-theme-name/目录下。建议使用子主题来避免将来更新主题时丢失自定义代码,你可以参考子主题创建教程来了解如何操作;
- 添加自定义代码:在functions.php文件的末尾添加代码,并根据需求修改代码中的邮箱后缀列表,然后保存文件。
方案二:通过插件实现限制
如果你希望在WordPress中限制可以注册的邮箱类型后缀,你可以选择以下方法之一:
使用现成的插件:最简单的方法是使用WordPress插件来实现这一功能。市面上有一些插件可以让你轻松地添加自定义的邮箱后缀限制。以下是使用插件的步骤:
- 登录到WordPress后台。
- 转到“插件” > “安装新插件”。
- 在搜索框中输入User Domain Whitelist 或 CM E-Mail Blacklist 关键词,然后查找相应的插件。
- 安装并激活一个合适的插件。
- 配置插件以限制或允许特定的邮箱后缀。
两种插件的功能相似,User Domain Whitelist 允许你选择使用“白名单”或“黑名单”模式。例如,选择“白名单”模式时,只有添加到白名单列表的邮箱域名可以注册;选择“黑名单”模式时,黑名单列表中的邮箱域名都不允许注册。
CM E-Mail Blacklist 插件同样可以设置白名单和黑名单,并且可以测试设置是否生效,但实际测试可能无法打开。
写在最后
使用插件的方式实现起来比较简单,这里就不详细展开了。总之,通过上述步骤,你就可以在WordPress网站上对特定后缀的邮箱地址进行白名单或黑名单的限制注册了。






