Das geht ganz einfach. Sie müssen nur einen Umleitungsparameter angeben. Wenn Sie einen Anmeldelink auf der Startseite verwenden, um zur Anmeldeseite zu gelangen, ist die Lösung von @ sisir korrekt.
<?php echo wp_login_url( $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] ); ?>
Wenn Sie ein benutzerdefiniertes Formular auf der Startseite verwenden, <form>
stellen Sie sicher, dass Sie innerhalb des Felds ein ausgeblendetes Feld mit der URL ausfüllen, die umgeleitet werden soll
<input type="hidden" name="redirect_to" value="<?php echo $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>" />
Wenn Sie wp_login_form()
das Formular mit generieren, geben Sie einen Parameter ein: 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 );
?>
Ändern Sie andere Parameter je nach Bedarf.
Versuchen Sie,
the_permalink()
als$redirect
Argument zu übergeben:BEARBEITEN:
Sorry, habe deine Frage ursprünglich falsch verstanden. Versuche dies:
Beachten Sie auch: Die ordnungsgemäße Verwendung von
wp_redirect()
erfordert in der Regel das Hinzufügenexit;
, das ich meinem zweiten Beispiel hinzugefügt habe.quelle
Vielen Dank, ich habe ein bisschen von dem verwendet, was alle empfohlen haben, sodass mein Code am Ende so aussieht:
Und in meinem Anmeldeformular (ich habe mein Anmeldeformular in meiner Bewerbung fest codiert, danke @Ashfame, dass ich über wp_login_form informiert wurde. Ich hatte keine Ahnung, dass es existiert.)
Vielen Dank für Ihre Hilfe, ich habe alle gewählt!
quelle
functions.php
exit()
oderdie()
nachwp_redirect()
. Andernfalls wird der Code möglicherweisewp_redirect()
ausgeführt, was zu Fehlern und Sicherheitslücken führen kann.Dies ist mein Code, den ich benutze, um Leute zu wp Login-Seite zu leiten. Wenn sie dann eingeloggt waren, kehrten sie dorthin zurück, wo sie waren. Aber es ist nicht die Startseite, sondern die WordPress-Anmeldeseite, auf der ich die benutzerdefinierte Anmeldung einrichte.
Vielleicht möchten Sie mit recherchieren. In der Regel erhalten Sie die aktuelle URL eines Benutzers von
$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]
quelle
Der
login_redirect
Filterhaken ist hier eine vollständigere und effektivere Lösung. Auf diese Weise können Sie verschiedene Weiterleitungspfade für verschiedene Benutzerebenen anbieten oder die Weiterleitungs-URL beibehalten, falls beim Anmelden ein Fehler auftritt (z. B. Falsches Kennwort).quelle
Es hat bei keiner Ihrer Antworten geklappt, aber es hat nur ein bisschen geklappt! Hier mein Code:
Nur ich fügte hinzu
/wp-login.php
im Vergleich zu @Matt's Antwort , aber für mich war das der Schlüssel. Ich hoffe, das hilft! :)**BEARBEITEN:
Ich habe einen FEHLER festgestellt, als Sie mit FORCE WordPress in HTTPS navigieren. Diese Methode funktioniert nicht, da die Umleitung in HTTP erfolgt. Zur Behebung des Problems habe ich die Funktion geändert. Das ist das Ergebnis:
Ich überprüfe das Protokoll und dann habe ich gelöscht ‚
esc_url
‘ und fügte hinzu , das richtige Protokoll:$protocol://
. Auch das habe ich geändert""
.Ich arbeite mit dieser Seite .
quelle
Ich weiß, dass dies sehr spät ist, aber ich habe einen Post darüber verfasst, wie dies zu tun ist, wenn zukünftige Leute dies finden und es brauchen:
http://www.ryanprejean.com/force-login-with-redirect-and-exceptions/
quelle