Функция wp_lostpassword_url()
возвращает URL-адрес, по которому пользователь может восстановить забытый пароль. Она часто используется в шаблонах тем для создания ссылки на страницу восстановления пароля.
wp_lostpassword_url( string $redirect = '' ): string
Описание
- wp_lostpassword_url() генерирует ссылку на стандартную страницу восстановления пароля WordPress (по умолчанию:
wp-login.php?action=lostpassword
). - Параметр
$redirect
позволяет указать URL-адрес, на который будет перенаправлен пользователь после успешного ввода данных для восстановления пароля.
Параметры
- $redirect (строка, необязательный)
URL-адрес для перенаправления после успешного ввода данных для восстановления пароля.
По умолчанию:''
(переход на стандартную страницу восстановления пароля).
Возвращаемое значение
- string: URL для восстановления пароля.
Хуки
lostpassword_url
— позволяет модифицировать URL страницы восстановления пароля.
Пример 1: Базовое использование
Для создания стандартной ссылки на страницу восстановления пароля можно использовать следующий код:
<a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php esc_html_e( 'Lost Password?', 'textdomain' ); ?></a>
Результат будет выглядеть следующим образом:
<a href="http://example.com/wp-login.php?action=lostpassword">Lost Password?</a>
Пример 2: Восстановление пароля с перенаправлением на текущую страницу
Если необходимо, чтобы после восстановления пароля пользователь вернулся на ту страницу, с которой он начал процесс восстановления, можно использовать текущий URL страницы как параметр для перенаправления:
<a href="<?php echo esc_url( wp_lostpassword_url( get_permalink() ) ); ?>"><?php esc_html_e( 'Lost Password?', 'textdomain' ); ?></a>
Этот код добавляет в ссылку параметр перенаправления на текущую страницу.
Пример 3: Восстановление пароля с перенаправлением на главную страницу
Для того чтобы перенаправить пользователя на главную страницу после успешного восстановления пароля, можно указать URL главной страницы в параметре $redirect
:
<a href="<?php echo esc_url( wp_lostpassword_url( get_home_url() ) ); ?>"><?php esc_html_e( 'Lost Password?', 'textdomain' ); ?></a>
Результат будет выглядеть следующим образом:
<a href="http://example.com/wp-login.php?action=lostpassword&redirect_to=http%3A%2F%2Fexample.com">Lost Password?</a>
Пример 4: Изменение ссылки на страницу восстановления пароля через хук
Если вы создали кастомную страницу для восстановления пароля, например, /getpassword
, вы можете изменить все ссылки на сайте с помощью фильтра lostpassword_url
:
add_filter( 'lostpassword_url', 'change_lostpassword_url', 10, 2 );
function change_lostpassword_url( $url, $redirect ) {
$new_url = home_url( '/getpassword' );
return add_query_arg( array('redirect' => $redirect), $new_url );
}
В результате все ссылки на восстановление пароля на сайте будут указывать на страницу /getpassword
:
<a href="http://example.com/getpassword?redirect=URL">Lost Password?</a>
Заключение
Функция wp_lostpassword_url()
является простым и удобным способом для создания ссылки на страницу восстановления пароля в WordPress. Она поддерживает возможность перенаправления на произвольный URL после успешного восстановления пароля и может быть кастомизирована с помощью хуков.