Главная Новости

Wp_lostpassword_url() - возвращает URL страницы сброса пароля


Опубликовано: 01.09.2018

Небольшое вступление — описание практически всех функций есть в интернете, переведены тоже очень многие, однако я замечаю, что очень мало какие из них действительно подробно описаны (так, чтобы прочитал — и никаких вопросов уже не осталось).

wp_lostpassword_url ( $redirect = '' )
$redirect (строка) Абсолютный либо относительный URL адрес в пределах домена сайта, куда редиректить пользователя после того, как он укажет свой email и нажмёт кнопку сброса пароля.

То есть вы можете указать http://test.blog/2011/05/08/test/ либо /2011/05/08/test/ — и всё будет окей, однако если вы укажете URL другого сайта, либо URL поддомена (неважно — даже если это поддомен в пределах сети WordPress Multisite ) — в обоих случаях вы будете перенаправлены на /wp-admin/.

Если ничего не указывать в этом параметре, то по умолчанию редирект происходит на страницу http://test.blog/wp-login.php?checkemail=confirm.

Выводим ссылку сброса пароля с перенаправлением на главную страницу

<a href=" <?php echo wp_lostpassword_url ( 'http://test.blog' ) ?> ">Забыли?</a>

Того же самого можно добиться при помощи функции site_url() .

<a href=" <?php echo wp_lostpassword_url ( site_url ( ) ) ?> ">Забыли?</a>

Выводим ссылку сброса пароля с перенаправлением на текущую страницу

Забавно, что на официальном кодексе в качестве ссылки для редиректа рекомендуют использовать get_permalink() , возможно это и прокатит, если вы выводите ссылку сброса пароля где-то внутри содержимого поста или страницы , а если это главная или какая-то рубрика сайта? Тогда будет косяк.

Сейчас я покажу, как универсально редиректить пользователя на ту страницу, на которой он находился до этого. Делается это легко и просто при помощи массива $_SERVER следующим образом:

<a href=" <?php echo wp_lostpassword_url ( site_url ( $_SERVER [ 'REQUEST_URI' ] ) ) ?> " title="Забыли пароль?">Забыли?</a>

То же самое и даже лучше:

<a href=" <?php echo wp_lostpassword_url ( $_SERVER [ 'REQUEST_URI' ] ) ?> " title="Забыли пароль?">Забыли?</a>

Как глобально на всём сайте изменить все ссылки на страницу сброса пароля

Сейчас я покажу, как это можно сделать несколькими строками кода, при помощи фильтра lostpassword_url, находящегося внутри функции.

Этот небольшой кусочек кода может помочь вам при создании произвольной страницы сброса пароля, о чём вы кстати можете почитать в этом уроке . Хотя там я этот хук не использовал ????

add_filter ( 'lostpassword_url' , 'misha_change_lost_pass_link' ) ; function misha_change_lost_pass_link ( ) { return site_url ( '/forgot' ) ; }
rss