Функция wp_login_form()
используется для вывода HTML-кода формы авторизации на сайте WordPress. Это позволяет создать форму для входа пользователя в любом месте темы или плагина WordPress.
wp_login_form( array $args = array() ): void|string
Описание
Функция выводит стандартную форму входа, состоящую из полей для ввода имени пользователя, пароля, опции «Запомнить меня» и кнопки «Войти». Можно настроить форму с помощью параметров и задать перенаправление после успешного входа. По умолчанию HTML-код формы выводится на экран, но его можно вернуть для дальнейшей обработки, если установить параметр echo
в false
.
Параметры
- $args (массив, необязательный)
Массив аргументов, контролирующих вывод формы:- echo (логический)
Вывести форму на экран (true
) или вернуть HTML-код для обработки (false
).
По умолчанию:true
. - redirect (строка)
URL, на который нужно перенаправить пользователя после входа.
По умолчанию: текущий URL-адрес. - form_id (строка)
Идентификатор тега<form>
.
По умолчанию:'loginform'
. - label_username (строка)
Текст заголовка для поля «Имя пользователя».
По умолчанию:'Username or Email Address'
. - label_password (строка)
Текст заголовка для поля «Пароль».
По умолчанию:'Password'
. - label_remember (строка)
Текст для поля «Запомнить меня».
По умолчанию:'Remember Me'
. - label_log_in (строка)
Текст для кнопки «Войти».
По умолчанию:'Log In'
. - id_username (строка)
ID поля для ввода имени пользователя.
По умолчанию:'user_login'
. - id_password (строка)
ID поля для ввода пароля.
По умолчанию:'user_pass'
. - id_remember (строка)
ID для поля «Запомнить меня».
По умолчанию:'rememberme'
. - id_submit (строка)
ID для кнопки отправки формы.
По умолчанию:'wp-submit'
. - remember (логический)
Отображать поле «Запомнить меня» или нет.
По умолчанию:true
. - value_username (строка)
Значение по умолчанию для поля «Имя пользователя».
По умолчанию: пустое. - value_remember (логический)
Устанавливать флажок «Запомнить меня» по умолчанию.
По умолчанию:false
.
- echo (логический)
Возвращаемое значение
- void|string: Если параметр
echo
установлен вtrue
, выводит HTML-код формы на экран. Если установлен вfalse
, возвращает HTML-код для дальнейшей обработки.
Хуки
login_form_defaults
— позволяет изменить параметры по умолчанию.login_form_top
— выводит HTML перед полем для ввода имени пользователя.login_form_middle
— выводит HTML между полями «Имя пользователя» и «Пароль».login_form_bottom
— выводит HTML после поля «Запомнить меня».
Пример 1: Простая форма входа
Этот код выведет стандартную форму входа на текущую страницу:
<?php wp_login_form(); ?>
Пример 2: Форма входа с перенаправлением на главную страницу
Этот пример показывает, как настроить форму с перенаправлением пользователя на главную страницу после успешного входа:
<?php wp_login_form( array( 'redirect' => home_url() ) ); ?>
Пример 3: Настройка текста и полей формы
Вы можете изменить подписи полей формы и текст кнопки «Войти»:
<?php wp_login_form( array(
'label_username' => __( 'Your Username' ),
'label_password' => __( 'Your Password' ),
'label_log_in' => __( 'Sign In' ),
'remember' => false, // Скрыть поле "Запомнить меня"
) ); ?>
Пример 4: Возвращение HTML-кода формы
Если вам нужно получить HTML-код формы для обработки, например, для вывода в кастомном месте шаблона, используйте параметр echo => false
:
$form_html = wp_login_form( array( 'echo' => false ) );
echo '<div class="custom-login-form">' . $form_html . '</div>';
Пример 5: Оставить пользователя на той же странице при ошибке входа
Используя хук wp_login_failed
, можно сделать так, чтобы пользователь оставался на той же странице при вводе неправильных данных:
add_action( 'wp_login_failed', 'my_login_fail' );
function my_login_fail( $username ) {
$referrer = $_SERVER['HTTP_REFERER'];
if ( !empty( $referrer ) && !strstr( $referrer, 'wp-login' ) && !strstr( $referrer, 'wp-admin' ) ) {
wp_redirect( add_query_arg( 'login', 'failed', $referrer ) );
exit;
}
}
Пример 6: Использование формы входа через шорткод
Вы можете создать шорткод для вставки формы авторизации в любой пост или страницу:
function wpdocs_login_form_shortcode() {
return wp_login_form( array( 'echo' => false ) );
}
add_shortcode( 'wp_login_form', 'wpdocs_login_form_shortcode' );
Теперь вы можете использовать [wp_login_form]
в любом посте или на странице, чтобы вывести форму входа.
Заключение
Функция wp_login_form()
предоставляет простой и гибкий способ отображения формы входа на сайте WordPress. С помощью различных параметров можно настроить вид и поведение формы, а также определить перенаправление после успешного входа пользователя.