要在WordPress中限制以特定郵箱后綴(例如@gmail.com)進(jìn)行用戶注冊,可以通過添加自定義代碼到您的主題的 functions.php
文件或?qū)⒋a封裝成插件
來實(shí)現(xiàn)這一功能。下面提供了白名單和黑名單的示例代碼,用于檢查用戶注冊時使用的郵箱后綴,并在匹配到指定后綴時阻止或允許注冊。
實(shí)現(xiàn)代碼
我們先提供下實(shí)現(xiàn)的代碼,氛圍白名單
和黑名單
兩種模式,按需選擇其中一種即可。
白名單模式代碼
/**
* Plugin Name: WordPress 注冊郵箱白名單
* Plugin URI: http://www.air-home.cn/
* Author: WPCOM
* Version: 1.0
* Author URI: http://www.air-home.cn/
*/
add_filter('registration_errors', function($errors, $login, $email){
/**
* 允許注冊的郵箱后綴域名,可在數(shù)組里面自定義添加
* 英文逗號分隔,引號也是英文輸入狀態(tài)輸入,域名字母小寫
*/
$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);
黑名單模式代碼
/**
* Plugin Name: WordPress 注冊郵箱黑名單
* Plugin URI: http://www.air-home.cn/
* Author: WPCOM
* Version: 1.0
* Author URI: http://www.air-home.cn/
*/
add_filter('registration_errors', function($errors, $login, $email) {
/**
* 不允許注冊的郵箱后綴域名,可在數(shù)組里面自定義添加
* 英文逗號分隔,引號也是英文輸入狀態(tài)輸入,域名字母小寫
*/
$restricted_domains = ['gmail.com', 'qq.com'];
$email_domain = strtolower(substr(strrchr($email, "@"), 1));
// 郵箱域名在黑名單列表
if (in_array($email_domain, $restricted_domains)){
// 提示語可自定義替換
$msg = '當(dāng)前域名后綴郵箱不允許注冊。';
$errors->add('domain_blacklist_error', $msg);
}
return $errors;
}, 10, 3);
代碼部署
代碼部署可選擇在主題的functions.php
文件最后面插入,也可以新建一個php文件直接復(fù)制進(jìn)入上傳到插件目錄。
封裝成插件部署(推薦)
- 保存為PHP文件:新建一個PHP文件,可使用代碼編輯類軟件(例如
Visual Studio Code
、Sublime Text
)或者寶塔面板文件管理器的新建文件,保存為.php
后綴文件,這里我們命名為email-domain-check.php
; - 添加代碼:由于上面的示例代碼僅為功能的核心代碼,而PHP語法代碼是以
<?php
開頭的,所以需要在上面新建的文件第一行添加代碼:<?php
,然后從第二行開始把上面的代碼復(fù)制進(jìn)文件,最后替換代碼里面的郵箱域名以及提示信息等并保存文件; - 上傳到插件目錄:上傳到服務(wù)器網(wǎng)站插件目錄,一般是網(wǎng)站目錄下的
/wp-content/plugins
目錄,保存后的完整路徑:/wp-content/plugins/email-domain-check.php
; - 啟用插件:進(jìn)入網(wǎng)站后臺
插件
啟用安裝的插件,插件名稱為WordPress 注冊郵箱白名單
或者WordPress 注冊郵箱黑名單
;
部署到主題functions.php文件
-
訪問您的WordPress網(wǎng)站文件:使用FTP客戶端或通過您的網(wǎng)站控制面板(例如寶塔)的文件管理器訪問您的WordPress站點(diǎn)文件;
-
編輯
functions.php
文件:找到您當(dāng)前主題的functions.php
文件。這通常位于/wp-content/themes/your-theme-name/
目錄下,建議使用子主題來進(jìn)行更改,以避免將來更新主題時丟失自定義代碼:如何自定義修改主題而不被新版本覆蓋?子主題創(chuàng)建教程; - 添加自定義代碼:在
functions.php
文件的末尾添加代碼,并按自己需求修改代碼中的郵箱后綴列表,然后保存文件。
通過上述步驟就可以在WordPress網(wǎng)站上對特定后綴的郵箱地址進(jìn)行白名單或者黑名單的限制注冊了。