Skorzystałem z samouczka Jeffa Stara, aby utworzyć własny niestandardowy formularz logowania http://digwp.com/2010/12/login-register-password-code/ . Działa świetnie, ale mam jeden problem. W formularzu resetowania hasła, jeśli ktoś nieprawidłowo wpisze swoją nazwę użytkownika (aby się nie zweryfikował), zostanie wyrzucony do domyślnego wp-login.php? Action = lostpassword z komunikatem o błędzie.
Czy istnieje sposób przekierowania na własną stronę błędów?
Dzięki!
username_exists()
ci jakoś pomóc?Odpowiedzi:
Kod, który opublikował w tym samouczku (bardzo fajny BTW), jest formularzem do wbudowanego modułu „zresetuj hasło”, który po błędzie przekierowuje do login.php, ale możesz to zmienić i zbudować własny w oparciu o oryginał i dodać przejdź na stronę szablonu, zmień:
do:
źródło
&redirect_to=$_SERVER['REQUEST_URI']
do linku w wysłanym e-mailu.$message .= get_option('siteurl') . "/wp-login.php?action=rp&key=$key&login=$user_login&redirect_to=$_SERVER['REQUEST_URI']\r\n";
, ale dziwne jest to, że po dodaniu przekierowania & wiadomość nie zostaje wysłana. . . Czy też nie muszę tworzyć nowego formularza, aby użytkownik mógł wprowadzić nowe hasło i tym podobne?Oto zaktualizowana wersja kodu z @bainternet z poprawionymi błędami składni, sugestia @Val i generator kluczy z wp-login.php 3.4.2:
źródło
Nadal napotykałem problemy z nieprawidłowym działaniem klucza resetowania, link w wiadomości e-mail przekierowywał mnie do standardowej strony resetowania hasła z parametrem URL wskazującym problem z kluczem, więc ściślej śledziłem plik wp-login.php i zawierał obiekt $ wp_hasher, to rozwiązało problem i resetowanie hasła w wiadomości e-mail teraz działa
źródło