現在網站用戶注冊的時候都有一個屏蔽非法關鍵詞,就是禁止注冊某些用戶名,就是為了防止用戶使用一些特定的用戶名,比如管理員、官方等用戶名,還有那些攻擊性的詞語,從而提高網站的安全性,那么WordPress網站如何禁止用戶注冊的時候使用某些用戶名?
下面這段代碼能夠完美解決WordPress禁止用戶注冊某些用戶名。
function sozot_validate_username($valid, $username) {
$forbidden = array(
'forum',
'forums',
'favorite',
'feedback',
'follow',
'files',
'gadget',
'yourdomain'
);
$pages = get_pages();
foreach ($pages as $page) {
$forbidden[] = $page->post_name;
}
if(!$valid || is_user_logged_in() && current_user_can('create_users') ) return $valid;
$username = strtolower($username);
if ($valid && strpos( $username, ' ' ) !== false) $valid=false;
if ($valid && in_array( $username, $forbidden )) $valid=false;
if ($valid && strlen($username) < 5) $valid=false;
return $valid;
}
add_filter('validate_username', 'sozot_validate_username', 10, 2);
function sozot_registration_errors($errors) {
if ( isset( $errors->errors['invalid_username'] ) )
$errors->errors['invalid_username'][0] = __( '錯誤:該用戶名不允許注冊!', 'sozot' );
return $errors;
}
add_filter('registration_errors', 'sozot_registration_errors');
將$forbidden = array里的單詞換成你想禁止的詞即可,然后把代碼添加到主題的functions.php文件即可。





