Możesz to zrobić z łatwością. Musisz tylko podać parametr przekierowania. Jeśli używasz linku logowania na stronie głównej, aby przejść do strony logowania, wówczas rozwiązanie @ sisir jest poprawne.
<?php echo wp_login_url( $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] ); ?>
Jeśli używasz niestandardowego formularza na stronie głównej, w środku <form>
upewnij się, że wypełniasz ukryte pole adresem URL, aby przekierować
<input type="hidden" name="redirect_to" value="<?php echo $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>" />
A jeśli używasz wp_login_form()
do wygenerowania formularza, wypełnij parametr - http://codex.wordpress.org/Function_Reference/wp_login_form
<?php
$args = array(
'echo' => true,
'redirect' => site_url( $_SERVER['REQUEST_URI'] ),
'form_id' => 'loginform',
'label_username' => __( 'Username' ),
'label_password' => __( 'Password' ),
'label_remember' => __( 'Remember Me' ),
'label_log_in' => __( 'Log In' ),
'id_username' => 'user_login',
'id_password' => 'user_pass',
'id_remember' => 'rememberme',
'id_submit' => 'wp-submit',
'remember' => true,
'value_username' => NULL,
'value_remember' => false );
wp_login_form( $args );
?>
Zmień inne parametry zgodnie z tym, co masz lub potrzebujesz.
Spróbuj podać
the_permalink()
jako$redirect
argument:EDYTOWAĆ:
Przepraszamy, źle zrozumiałem twoje pytanie. Spróbuj tego:
Uwaga: prawidłowe użycie
wp_redirect()
ogólnie wymaga dodaniaexit;
, które dodałem do mojego drugiego przykładu.źródło
Dzięki wszystkim, użyłem trochę tego, co wszyscy polecili, więc w końcu mój kod wygląda następująco:
I na moim formularzu logowania (na stałe zapisuję mój formularz logowania w aplikacji dzięki @Ashfame za poinformowanie mnie o wp_login_form nie miałem pojęcia, że istnieje) dodałem to, gdy dane logowania są prawidłowe i są gotowe do zalogowania:
Wielkie dzięki za pomoc, głosowałem za wszystkimi!
źródło
functions.php
exit()
lubdie()
powp_redirect()
. W przeciwnym razie możliwewp_redirect()
jest wykonanie kodu po , co może prowadzić do błędów i luk w zabezpieczeniach.to jest mój kod, którego używam do przekierowania na stronę logowania wp. Po zalogowaniu wrócili do miejsca, w którym byli. Ale to nie jest strona główna, ale strona logowania wordpress, na której konfiguruję niestandardowe logowanie.
Możesz chcieć przeprowadzić badania. Zazwyczaj otrzymasz aktualny adres URL użytkownika
$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]
źródło
login_redirect
Hak filtr jest bardziej kompletne i skuteczne rozwiązanie tutaj. W ten sposób możesz zaoferować różne ścieżki przekierowania dla różnych poziomów użytkowników lub zachować adres URL przekierowania w przypadku błędu podczas logowania (tj. Niepoprawne hasło).źródło
To nie zadziałało z żadną z twoich odpowiedzi, ale tylko dodając małą rzecz, zadziałało! Oto mój kod:
Tylko dodałem
/wp-login.php
w porównaniu do odpowiedzi @ Matta, ale dla mnie był kluczem. Mam nadzieję, że to pomaga! :)**EDYTOWAĆ:
Wykryłem BŁĄD, gdy wymuszasz wordpress, aby nawigować w HTTPS. Ta metoda nie działa, ponieważ przekierowanie odbywa się w HTTP. Aby rozwiązać problem, zmieniłem funkcję. Oto wynik:
I sprawdzić protokół i potem usunięty „
esc_url
” i dodał prawidłowy protokół:$protocol://
. Również zmieniłem""
.Opieram się na tej stronie .
źródło
Wiem, że jest już bardzo późno, ale napisałem post o tym, jak to zrobić, jeśli ktoś w przyszłości znajdzie to i potrzebuje:
http://www.ryanprejean.com/force-login-with-redirect-and-exceptions/
źródło