Vous pouvez le faire facilement. Il vous suffit de spécifier un paramètre de redirection. Si vous utilisez un lien de connexion sur la page d'accueil pour accéder à la page de connexion, la solution de @ sisir est correcte.
<?php echo wp_login_url( $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] ); ?>
Si vous utilisez un formulaire personnalisé sur la page d'accueil, puis à l'intérieur du <form>
, assurez-vous de remplir un champ caché avec l'URL à rediriger
<input type="hidden" name="redirect_to" value="<?php echo $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>" />
Et si vous utilisez wp_login_form()
pour générer le formulaire, remplissez un paramètre - 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 );
?>
Modifiez les autres paramètres selon vos besoins ou vos besoins.
Essayez de passer
the_permalink()
comme$redirect
argument:ÉDITER:
Désolé, vous avez mal compris votre question à l'origine. Essaye ça:
Remarque également: une utilisation correcte de
wp_redirect()
nécessite généralement l'ajoutexit;
, que j'ai ajouté à mon deuxième exemple.la source
Merci à tous, j'ai en quelque sorte utilisé un peu ce que tout le monde recommandait, donc à la fin mon code ressemble à ceci:
Et sur mon formulaire de connexion (je code en dur mon formulaire de connexion dans mon application, merci @Ashfame de m'avoir informé de wp_login_form, je ne savais pas qu'il existait) J'ai ajouté ceci lorsque les informations d'identification de l'utilisateur sont correctes et qu'elles sont prêtes à se connecter:
Merci beaucoup pour votre aide, j'ai voté pour tout le monde!
la source
functions.php
exit()
oudie()
aprèswp_redirect()
. Sinon, il est possible que le code aprèswp_redirect()
s'exécute, ce qui peut entraîner des bogues et des failles de sécurité.c'est mon code que j'utilise pour diriger vers la page de connexion wp. Puis, une fois connecté, ils sont retournés là où ils étaient. Mais ce n'est pas la page d'accueil mais la page de connexion wordpress où je configure la connexion personnalisée.
Vous voudrez peut-être faire des recherches avec. En règle générale, vous obtiendrez l'URL actuelle d'un utilisateur en
$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]
la source
Le
login_redirect
crochet du filtre est ici une solution plus complète et efficace. De cette façon, vous pouvez proposer différents chemins de redirection pour différents niveaux d'utilisateurs, ou conserver l'URL de redirection en cas d'erreur lors de la connexion (par ex. Mot de passe incorrect).la source
Cela n'a fonctionné aucune de vos réponses mais seulement en ajoutant une petite chose, cela a fonctionné! Voici mon code:
Seulement, j'ai ajouté
/wp-login.php
par rapport à la réponse de @ Matt, mais pour moi, c'est la clé. J'espère que cela pourra aider! :)**ÉDITER:
J'ai détecté une ERREUR lorsque vous utilisez FORCE wordpress pour navegate en HTTPS. Cette méthode ne fonctionne pas car la redirection est en HTTP. Pour résoudre le problème, j'ai changé la fonction. Voici le résultat:
Je vérifie le protocole et je supprimé «
esc_url
» et ajouté le protocole approprié:$protocol://
. J'ai aussi changé le""
.Je suis basé avec cette page .
la source
Je sais que c'est super tard, mais j'ai fait un post sur exactement comment faire si des personnes futures le trouvent et en ont besoin:
http://www.ryanprejean.com/force-login-with-redirect-and-exceptions/
la source