Quésaco ?
Quand on travaille l’expérience utilisateur sur un site WordPress, la déconnexion est souvent un détail que l’on laisse de côté. Pourtant, laisser un visiteur arriver sur l’écran de connexion ou sur une page peu adaptée après son départ peut casser la fluidité du parcours. Avec quelques lignes de code bien placées, vous pouvez reprendre la main sur ce moment précis et renvoyer l’utilisateur vers la page d’accueil, une landing page ou n’importe quelle URL de votre choix.
Dans cet article, je vous montre comment utiliser le hook wp_logout pour déclencher une redirection juste après la déconnexion. Le snippet ci-dessous est simple à intégrer dans le fichier functions.php de votre thème ou dans un petit plugin maison, et il permet de garder un comportement cohérent entre l’espace d’administration et la partie publique du site. Vous allez voir que cette petite amélioration peut rendre la navigation bien plus naturelle pour vos membres, clients ou rédacteurs.
Pourquoi rediriger après la déconnexion sur WordPress ?
Quand un utilisateur se déconnecte, WordPress le renvoie souvent vers l’écran de connexion ou vers la page précédente. Dans certains cas, ce comportement convient très bien. Mais sur un site avec un espace membre, un extranet ou une interface d’administration simplifiée, cela peut créer une petite rupture dans le parcours.
Le but ici est de garder une navigation propre. Une fois déconnecté, le visiteur est renvoyé vers une page connue, souvent l’accueil du site. Cela évite qu’il tombe sur une URL technique comme /wp-login.php ou qu’il revienne sur une page d’administration sans intérêt pour lui.
C’est une petite amélioration, mais elle participe à rendre votre site plus cohérent.
Le hook WordPress à utiliser
Pour ce besoin, WordPress met à disposition le hook wp_logout. Il se déclenche juste après la déconnexion de l’utilisateur, ce qui en fait le point idéal pour lancer une redirection personnalisée.
L’idée est simple :
- créer une fonction PHP
- intercepter la déconnexion
- vérifier éventuellement la provenance
- rediriger vers la page voulue
- stopper l’exécution avec
exit
Le snippet que vous pouvez utiliser est celui-ci.
// Redirection après déconnexion
function auto_redirect_external_after_logout(){
// check if user is leaving from admin
if ( false !== strpos( $_SERVER['HTTP_REFERER'], 'wp-admin' ) ){
wp_redirect( '$index.php' );
} else {
wp_redirect( '$index.php' );
}
// make sure to call exit after redirect
exit;
}
add_action( 'wp_logout', 'auto_redirect_external_after_logout');
Vous pouvez l’ajouter dans le fichier functions.php de votre thème enfant ou dans votre plugin utilitaire si vous centralisez vos personnalisations WordPress.
Ce que fait exactement ce code
Le fonctionnement est assez direct. Au moment de la déconnexion, la fonction auto_redirect_external_after_logout() s’exécute.
Le test sur $_SERVER['HTTP_REFERER'] cherche à savoir si l’utilisateur venait de l’administration WordPress, grâce à la présence de wp-admin dans l’URL précédente.
Dans l’exemple présent, les deux cas redirigent vers la même destination :
wp_redirect( '$index.php' );
Le exit; juste après coupe le script proprement pour éviter que WordPress continue son traitement après l’envoi de l’en-tête HTTP.
Une version plus propre à utiliser
Le code fourni fonctionne dans son principe, mais il peut être simplifié puisque les deux conditions font exactement la même chose.
Dans la pratique, vous pouvez utiliser une version plus légère :
function auto_redirect_external_after_logout(){
wp_redirect( home_url() );
exit;
}
add_action( 'wp_logout', 'auto_redirect_external_after_logout' );
Cette écriture est plus lisible et s’appuie sur home_url(), ce qui évite de figer une URL manuellement.
C’est souvent le choix le plus simple si vous souhaitez renvoyer vos visiteurs vers l’accueil du site.
Dans quels cas ce snippet est utile
Je l’utilise souvent sur des projets où la partie connexion ne doit jamais être visible après la déconnexion.
Par exemple :
- espace membre WooCommerce
- extranet client
- tableau de bord personnalisé
- site avec accès rédacteur limité
- intranet WordPress
Dans ces contextes, revenir automatiquement à l’accueil ou à une page “vous êtes déconnecté” rend l’expérience plus propre.
Quelques précautions à garder en tête
Si vous utilisez un système de cache, un plugin de sécurité ou une extension de gestion des sessions, pensez à tester le comportement après ajout du snippet.
Certaines extensions de type membership ou SSO appliquent déjà leurs propres redirections. Ajouter une seconde redirection pourrait créer un conflit.
Le plus simple est de tester :
- depuis l’administration
- depuis le front-office
- avec plusieurs rôles utilisateurs
- avec et sans cache actif
Vous validez ainsi que le parcours reste cohérent sur tout le site.
Une petite amélioration qui change le ressenti
Ce genre d’ajustement passe souvent inaperçu côté développement, mais côté utilisateur la différence se sent rapidement. Le site paraît mieux fini, plus logique, et l’on évite les écrans techniques inutiles.
Sur WordPress, ce sont souvent ces petits hooks bien placés qui permettent d’affiner le parcours sans alourdir le projet.
