Небольшое вступление — описание практически всех функций есть в интернете, переведены тоже очень многие, однако я замечаю, что очень мало какие из них действительно подробно описаны (так, чтобы прочитал — и никаких вопросов уже не осталось).
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' ); }
То есть вы можете указать 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' ); }