validate_username()
Проверяет правильность написания имени пользователя (username - логина).
Если в имени пользователя будут использованы недопустимые символы, то функция вернет false — проверка не пройдена.
Разрешенные символы: a-z _ - пробел . @, т.е. латинский алфавит, цифры и _ - пробел . @.
Подходит для проверки логина, но не отображаемого имени! Т.к. в основе работы лежит функция sanitize_user() со вторым параметром true, т.е. строгая очистка. Так например, все кирилические символы будут удалены.
Работает на основе: sanitize_user()
Хуки из функции
Возвращает
true|false. true, если имя соответствует нормам, иначе false.
Использование
if( ! validate_username( $username ) ){
// неправильный логин
}
- $username(строка) (обязательный)
- Имя пользователя (логин) для проверки.
Примеры
#1 Проверим логин вновь создаваемого пользователя и его существование в Базе Данных.
Если имя прошло проверку и такого пользователя еще нет в БД, то зарегистрируем пользователя:
<?php
$username = $_POST['username'];
$error = false;
if( !validate_username( $username ) )
$error = "В имени пользователя использованы недопустимые символы!";
if ( !$error && username_exists( $username ) )
$error = "Такое имя пользователя уже используется!";
if( !$error ){
// можно регистрировать
}
?>
Список изменений
| С версии 2.0.1 | Введена. |
| С версии 4.4.0 | Empty sanitized usernames are now considered invalid. |
Код validate_username() validate username WP 6.9
function validate_username( $username ) {
$sanitized = sanitize_user( $username, true );
$valid = ( $sanitized === $username && ! empty( $sanitized ) );
/**
* Filters whether the provided username is valid.
*
* @since 2.0.1
*
* @param bool $valid Whether given username is valid.
* @param string $username Username to check.
*/
return apply_filters( 'validate_username', $valid, $username );
}