J'utiliserais le code ci-dessous pour que, sur mon site wordpress, si ?logout
soit ajouté à la fin de l'URL, l'utilisateur soit déconnecté. Cela fonctionne bien - si l'utilisateur visite une page telle que mysite.com/?logout
ou mysite.com/test-page/?logout
ou toute page où la variable $_GET['logout']
est définie, il sera déconnecté.
if( isset($_GET['logout']) ){
add_action('plugins_loaded', 'wp_logout',0);
}
Le problème auquel je suis confronté est que même si j'ajoute cette action à plugins_loaded
, qui se trouve tout en haut de la liste des crochets d'action , la page qui s'affiche indiquera toujours l'utilisateur connecté. est actualisé lors d'un chargement ultérieur, il affichera la version "déconnectée" de la page, mais pas sur la même demande.
Étapes pour recréer le problème:
functions.php
. Je l'ai dans un fichier dans le répertoire mu-plugins
.?logout
à l'URL.Comportement souhaité
Une fois que vous êtes connecté à Wordpress, visiter une page avec ?login
ajouté à l'URL termine le processus de déconnexion et affiche la page comme si vous étiez déconnecté lors de son chargement - sans avoir à l'actualiser.
Je ne pense pas pouvoir me connecter à Wordpress plus tôt et je ne sais donc pas comment résoudre ce problème.
Cela devrait le faire:
add_action('plugins_loaded', function(){
wp_set_current_user(0);
},0);
Essayez plutôt d'utiliser le hook wp
ou init
.