Функция validate_username()
в WordPress проверяет, является ли указанное имя пользователя (логин) корректным. Она помогает убедиться, что в логине используются только допустимые символы перед тем, как регистрировать нового пользователя или обновлять существующего.
validate_username( string $username ): bool
Функция проверяет, соответствует ли указанное имя пользователя допустимым критериям WordPress. Она очищает логин с использованием строгой фильтрации, удаляя любые недопустимые символы. Если логин прошел проверку, функция возвращает true
, в противном случае — false
.
Параметры
- $username (строка) — Имя пользователя, которое необходимо проверить на соответствие правилам.
Возвращаемое значение
- bool — Возвращает
true
, если имя пользователя является корректным, иfalse
, если оно содержит недопустимые символы.
Особенности работы
Функция validate_username()
использует строгие правила фильтрации, аналогичные тем, что применяются в функции sanitize_user()
. Это значит, что разрешены только следующие символы:
- Латинские буквы (a-z)
- Цифры (0-9)
- Подчеркивание (_), дефис (-), пробел ( ), точка (.), и символ «@»
Другие символы, включая кириллицу и специальные символы, будут считаться недопустимыми.
Пример 1: Проверка имени пользователя на корректность
Этот пример показывает, как использовать validate_username()
для проверки, соответствует ли имя пользователя правилам.
$username = $_POST['username'];
if ( ! validate_username( $username ) ) {
echo "В имени пользователя использованы недопустимые символы!";
} else {
echo "Имя пользователя корректно.";
}
Если пользователь введет логин с недопустимыми символами, функция выведет сообщение:В имени пользователя использованы недопустимые символы!
.
Если логин соответствует требованиям, появится сообщение:Имя пользователя корректно.
Пример 2: Проверка имени пользователя и его существования в базе данных
Здесь мы проверим логин как на корректность, так и на его наличие в базе данных WordPress:
$username = $_POST['username'];
$error = false;
if ( ! validate_username( $username ) ) {
$error = "В имени пользователя использованы недопустимые символы!";
}
if ( !$error && username_exists( $username ) ) {
$error = "Такое имя пользователя уже используется!";
}
if ( !$error ) {
// Логин корректен и не существует в базе данных, можно регистрировать пользователя
echo "Регистрация успешна!";
} else {
echo $error;
}
Если логин содержит недопустимые символы, будет выведено сообщение:В имени пользователя использованы недопустимые символы!
Если такой логин уже существует в базе данных:Такое имя пользователя уже используется!
Пример 3: Проверка при создании нового пользователя
Этот пример демонстрирует, как автоматически проверять корректность логина перед регистрацией пользователя:
function register_new_user( $username ) {
if ( ! validate_username( $username ) ) {
return "Логин содержит недопустимые символы.";
}
if ( username_exists( $username ) ) {
return "Имя пользователя уже занято.";
}
// Создание нового пользователя
$userdata = array(
'user_login' => $username,
'user_pass' => wp_generate_password(),
);
$user_id = wp_insert_user( $userdata );
if ( is_wp_error( $user_id ) ) {
return "Ошибка при создании пользователя.";
}
return "Пользователь успешно зарегистрирован!";
}
// Пример использования
$result = register_new_user( 'ivan_petrov' );
echo $result;
Этот код сначала проверит логин на корректность, затем убедится, что такого логина еще нет в базе данных, и только после этого зарегистрирует нового пользователя.
Заключение
Функция validate_username()
— это простой и эффективный инструмент для проверки корректности имени пользователя в WordPress. Она гарантирует, что в логине используются только разрешенные символы, что важно для правильной работы сайта и предотвращения ошибок при регистрации.