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.7.1
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 ); }