Функция wp_login_url()
возвращает URL на страницу авторизации в WordPress. Это полезно для создания ссылок на страницу входа с возможностью указания URL для перенаправления после успешного входа.
wp_login_url( string $redirect = '', bool $force_reauth = false ): string
Описание
Функция используется для получения URL страницы входа (/wp-login.php
). В параметре $redirect
можно указать URL-адрес, на который пользователь будет перенаправлен после успешного входа. Также есть возможность принудительно запросить повторную авторизацию через параметр $force_reauth
.
Параметры
- $redirect (строка, необязательный)
URL-адрес, на который следует перенаправить пользователя после успешного входа.
По умолчанию:''
. - $force_reauth (логический, необязательный)
Заставляет повторно запрашивать авторизацию, даже если уже установлены куки.
По умолчанию:false
.
Возвращаемое значение
- string: URL-адрес страницы входа.
Хуки
login_url
— фильтр для изменения URL страницы авторизации.
Пример 1: Базовое использование
Этот пример показывает, как вывести ссылку на страницу входа без перенаправления:
<a href="<?php echo esc_url( wp_login_url() ); ?>" title="Login">Login</a>
Результат:
<a href="http://example.com/wp-login.php">Login</a>
Пример 2: Вход и возврат на текущую страницу
Чтобы после успешного входа пользователь был возвращен на текущую страницу:
<a href="<?php echo esc_url( wp_login_url( get_permalink() ) ); ?>" title="Login">Login</a>
Результат:
<a href="http://example.com/wp-login.php?redirect_to=http://example.com/current-page">Login</a>
Пример 3: Вход и переход на главную страницу
Вывод ссылки на вход с перенаправлением на главную страницу после успешной авторизации:
<a href="<?php echo esc_url( wp_login_url( home_url() ) ); ?>" title="Login">Login</a>
Результат:
<a href="http://example.com/wp-login.php?redirect_to=http://example.com/">Login</a>
Пример 4: Принудительная ре-авторизация
Этот пример заставляет пользователя пройти повторную авторизацию, даже если куки авторизации уже установлены:
<a href="<?php echo esc_url( wp_login_url( '', true ) ); ?>" title="Login">Login</a>
Результат:
<a href="http://example.com/wp-login.php?reauth=1">Login</a>
Пример 5: Вход с перенаправлением на другой сайт
Если необходимо перенаправить пользователя на другой сайт после успешной авторизации:
<a href="<?php echo esc_url( wp_login_url( 'http://example.com/redirect-page' ) ); ?>" title="Login">Login</a>
Результат:
<a href="http://example.com/wp-login.php?redirect_to=http://example.com/redirect-page">Login</a>
Пример 6: Получение текущего URL для перенаправления
Иногда необходимо получить фактический текущий URL, даже если это страница с ошибкой (например, приватный пост):
<?php $current_url = home_url( add_query_arg( [], $GLOBALS['wp']->request ) ); ?>
<a href="<?php echo esc_url( wp_login_url( $current_url ) ); ?>">Login</a>
Этот код гарантирует, что после входа пользователь вернется на ту страницу, с которой он пришел, даже если это страница 404 или приватный пост.
Заключение
Функция wp_login_url()
— это гибкий инструмент для получения URL страницы авторизации в WordPress с возможностью указания перенаправления после входа и опцией принудительной ре-авторизации. Она позволяет создавать динамичные ссылки на вход, что особенно полезно для пользователей, которым нужно вернуться на определенные страницы после авторизации.