
🔐 Bouton de connexion et déconnexion dans le menu WordPress : un guide étape par étape 2026
Le WordPress standard ne peut pas afficher un bouton «Connexion» pour les visiteurs non connectés et un bouton «Déconnexion» pour les utilisateurs connectés au même emplacement de menu. À première vue, cela semble anodin. Mais pour un site avec un tableau de bord membre, un espace adhérent ou un forum, c'est un besoin élémentaire, et sans cela, la navigation devient un jeu de devinettes.
Auparavant, l'extension BAW Login/Logout Menu gérait cette tâche. L'auteur a abandonné le projet en 2025, laissant des milliers de sites sans mises à jour. Son successeur direct a pris le relais: Login or Logout Menu Item avec plus de 20 000 installations actives et une note de 4,8 sur WordPress.org.
Nous avons tout regroupé dans un seul guide: de l'installation de l'extension en deux minutes aux redirections personnalisées par rôle et à la désactivation de la barre d'administration pour les utilisateurs standards.
💡 Aperçu rapide:
- Installez l'extension Login or Logout Menu Item et configurez trois champs de redirection
- Ajoutez un élément de menu «Connexion|Déconnexion» via l'éditeur classique ou l'éditeur de blocs
- Mettez en place une logique fine via des extraits dans functions.php: redirections par rôle, déconnexion sans confirmation, remplacement de wp-login.php
- Masquez la barre d'administration pour les utilisateurs standards et bloquez leur accès à wp-admin
Méthode 1: extension Login or Logout Menu Item, rapide et sans code

La manière la plus simple d'ajouter un bouton dynamique de connexion et de déconnexion est l'extension Login or Logout Menu Item. C'est le successeur direct de BAW Login/Logout Menu, réécrit de zéro par l'un des contributeurs du projet original. En juin 2026, l'extension compte plus de 20 000 installations actives, 23 avis et une note de 4,8 étoiles. La version 1.3.2 a été testée jusqu'à WordPress 7.0.
Pourquoi cette extension plutôt qu'une solution en code? L'extension ne touche pas à functions.php et ne cassera pas si vous changez de thème. Elle prend en charge l'éditeur de blocs, et l'élément «Connexion|Déconnexion» peut être ajouté à un bloc Navigation via la recherche classique. Elle dispose également d'une page de paramètres dédiée: pas d'URL magiques dans les champs de menu, tout est transparent.
Installation et configuration
Installez l'extension de manière standard: Extensions → Ajouter, tapez Login or Logout Menu Item, cliquez sur Installer puis Activer. Après activation, un nouvel élément apparaît dans le menu d'administration: Réglages → Login or Logout. Il y a trois champs, et voici ce qu'ils signifient:
- Login Page URL: l'adresse de la page de connexion. Pour la plupart des sites,
/wp-login.phpsuffit. Si vous utilisez une page de connexion personnalisée (par exemple/login/via MemberPress ou WooCommerce), saisissez-la ici. - Login Redirect URL: la page où l'utilisateur atterrit après connexion. En général
/account/ou simplement/pour la page d'accueil. Notez que les extensions d'adhésion comme MemberPress ou Restrict Content Pro peuvent outrepasser cette redirection avec leurs propres paramètres. - Logout Redirect URL: la page vers laquelle envoyer l'utilisateur après déconnexion. Mettre
/ou/wp-login.phpest pertinent.
Ajout de l'élément de menu
Allez dans Apparence → Menus. En haut à droite, cliquez sur Options de l'écran et vérifiez que la case Login/Logout est cochée. Un bloc «Login/Logout» apparaîtra dans la colonne de gauche; cochez Login|Logout et cliquez sur Ajouter au menu.
L'élément de menu apparaîtra dans la liste. Son URL doit rester #lolmiloginout# car c'est le déclencheur de l'extension; ne la modifiez pas. Vous pouvez éditer le libellé de navigation: par exemple «Connexion | Déconnexion» ou «Mon compte». Enregistrez le menu.
Si vous travaillez avec l'éditeur de blocs (Apparence → Éditeur, bloc Navigation): cliquez sur «+» pour ajouter un lien, tapez «connexion» ou «déconnexion» dans la recherche, et sélectionnez «Login|Logout» dans les suggestions. Le lien sera ajouté automatiquement avec la bonne URL. Vous pouvez aussi le saisir manuellement: #lolmiloginout#.
Que faire si le menu ne bascule pas
La cause la plus fréquente est la mise en cache. Désactivez le cache pour les utilisateurs connectés dans les paramètres de votre extension de cache: WP Rocket, Cloudflare APO, LiteSpeed. La deuxième cause est une autre extension qui intercepte la redirection. Vérifiez les paramètres de votre extension d'adhésion ou de sécurité: beaucoup d'entre elles ont leurs propres règles de redirection après connexion qui sont prioritaires.
Méthode 2: connexion et déconnexion via code dans functions.php
L'extension couvre la plupart des scénarios types. Mais parfois, vous avez besoin d'une logique plus granulaire: différentes redirections selon les rôles, déconnexion forcée sans confirmation, masquage de la barre d'administration. C'est là que functions.php intervient.
Ajoutez tout le code ci-dessous via l'extension Code Snippets; c'est plus sûr que de modifier directement functions.php. Une erreur de syntaxe ne plantera pas le site; elle désactivera simplement l'extrait.
Connexion avec redirection basée sur le rôle
Ce code redirige les administrateurs vers le tableau de bord d'administration et tous les autres vers une page de compte membre. Ajoutez-le à Code Snippets ou au functions.php de votre thème enfant.
1 /** 2 * Redirect after login: admin → wp-admin, others → /account 3 */ 4 function sd_redirect_by_role( $url, $request, $user ) { 5 if ( $user && is_object( $user ) && is_a( $user, 'WP_User' ) ) { 6 if ( $user->has_cap( 'administrator' ) ) { 7 $url = admin_url(); 8 } else { 9 $url = home_url( '/account' ); 10 } 11 } 12 return $url; 13 } 14 add_filter( 'login_redirect', 'sd_redirect_by_role', 10, 3 );
Comment cela fonctionne: le filtre login_redirect se déclenche au moment de la connexion. La fonction vérifie le rôle via has_cap('administrator') et renvoie l'URL appropriée. La priorité 10 est standard, et 3 limite le nombre d'arguments acceptés. Si le slug de votre page de compte diffère de /account, remplacez-le dans la ligne home_url('/account').
Déconnexion sans confirmation
Par défaut, WordPress affiche une page de confirmation lorsque vous cliquez sur un lien de déconnexion: «Êtes-vous sûr de vouloir vous déconnecter?» Sur les appareils mobiles, c'est particulièrement agaçant. Voici le code qui supprime la confirmation:
1 /** 2 * Logout without confirmation, redirect to home 3 */ 4 add_action( 'check_admin_referer', 'sd_logout_without_confirm', 10, 2 ); 5 function sd_logout_without_confirm( $action, $result ) { 6 if ( $action === 'log-out' && ! isset( $_GET['_wpnonce'] ) ) { 7 $redirect_to = isset( $_REQUEST['redirect_to'] ) 8 ? $_REQUEST['redirect_to'] 9 : home_url( '/' ); 10 $location = str_replace( '&', '&', wp_logout_url( $redirect_to ) ); 11 header( "Location: $location" ); 12 die; 13 } 14 }
Avant d'ajouter ceci, faites une sauvegarde complète du site. La fonction intercepte la vérification du nonce lors de la déconnexion et effectue la redirection immédiatement, en contournant la page de confirmation. Après installation, testez-la: ouvrez your-domain/wp-login.php?action=logout en mode navigation privée; vous devriez être redirigé vers la page d'accueil sans écran intermédiaire.
Certaines extensions de sécurité (Wordfence, Solid Security) outrepassent le comportement de déconnexion. Si la confirmation apparaît toujours, désactivez leur option «confirmer la déconnexion» ou ajoutez l'URL /wp-login.php?action=logout à la liste blanche.
Scénario: page de connexion personnalisée au lieu de wp-login.php
Si vous avez remplacé la page de connexion standard par une page personnalisée (par exemple via MemberPress ou WooCommerce), vous devez rediriger l'accès direct à wp-login.php:
1 /** 2 * Replace wp-login.php with custom login page 3 */ 4 add_action( 'init', 'sd_custom_login_page' ); 5 function sd_custom_login_page() { 6 global $pagenow; 7 if ( ! is_user_logged_in() && 'wp-login.php' === $pagenow ) { 8 wp_redirect( home_url( '/login' ) ); 9 exit; 10 } 11 }
Remplacez /login par le slug de votre page de connexion. C'est utile lorsque vous utilisez une extension de tableau de bord membre et que vous ne souhaitez pas exposer le formulaire WordPress standard.
Comment masquer la barre d'administration pour tout le monde sauf les administrateurs
La barre d'administration WordPress en haut du site n'est utile qu'à ceux qui gèrent le site. Les utilisateurs standards n'en ont pas besoin, et elle encombre l'interface, surtout si vous construisez un tableau de bord membre au design épuré.
Désactiver la barre d'administration via le code
Ajoutez ceci à Code Snippets ou au functions.php de votre thème enfant:
1 /** 2 * Hide admin bar for everyone except administrators 3 */ 4 add_action( 'after_setup_theme', 'sd_remove_admin_bar_for_non_admins' ); 5 function sd_remove_admin_bar_for_non_admins() { 6 if ( ! current_user_can( 'administrator' ) && ! is_admin() ) { 7 show_admin_bar( false ); 8 } 9 }
La fonction current_user_can('administrator') vérifie le rôle, et ! is_admin() garantit que la barre reste visible dans la zone d'administration elle-même, où toute personne y ayant accès en a besoin.
Bloquer l'accès à wp-admin
Masquer la barre ne suffit pas. Vous devez également bloquer l'accès à /wp-admin/ pour ceux qui n'en ont pas besoin:
1 /** 2 * Block access to wp-admin for non-administrators 3 */ 4 add_action( 'admin_init', 'sd_block_wp_admin_for_non_admins' ); 5 function sd_block_wp_admin_for_non_admins() { 6 if ( ! current_user_can( 'administrator' ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) { 7 wp_redirect( home_url( '/restrict_user' ) ); 8 exit; 9 } 10 }
La condition DOING_AJAX est cruciale: sans elle, vous bloquerez les requêtes AJAX des extensions de tableau de bord membre que les utilisateurs doivent exécuter depuis leur profil. Remplacez la page /restrict_user par n'importe quelle page de substitution, par exemple la page d'accueil ou une page avec un message «Accès refusé».
⁉️🤔 Foire aux questions
L'extension Login or Logout Menu Item ne fonctionne pas avec PHP 8.0, que faire?
Il y a un avis négatif sur WordPress.org concernant une incompatibilité avec PHP 8.0 datant de janvier 2026. Cependant, l'extension a été testée jusqu'à WP 7.0, et plus de 20 000 installations actives confirment un fonctionnement stable sur les versions modernes de PHP. Si vous rencontrez une erreur: vérifiez la version de l'extension (doit être la 1.3.2), désactivez les autres extensions de redirection, videz le cache. Sur un site de test avec PHP 8.2, aucun problème n'a été constaté.
Puis-je faire cela sans extension, uniquement avec du code?
Oui. La méthode 2 de cet article couvre entièrement la connexion, la déconnexion et les redirections via
functions.php. L'extension est plus pratique: paramètres depuis le panneau d'administration sans modifier de fichiers, prise en charge de l'éditeur de blocs, mises à jour automatiques. Si le site est simple et que vous avez seulement besoin d'un bouton de connexion et de déconnexion, utilisez l'extension. Si la logique est complexe (différentes redirections par rôle, plusieurs pages de connexion), utilisez le code.
Que faire si l'élément de menu n'apparaît pas dans l'éditeur de blocs?
Dans le bloc Navigation, cliquez sur «+» et tapez «connexion» dans la recherche (pas «lolmiloginout»). Si l'élément n'apparaît pas, vérifiez que l'extension est active et que votre version de WordPress est 6.0 ou supérieure. Pour les thèmes plus anciens sans éditeur de blocs, utilisez l'interface classique dans Apparence → Menus.
Comment configurer des redirections pour différents rôles via l'extension?
Login or Logout Menu Item ne fait pas de distinction entre les rôles; il effectue une seule redirection pour tous les utilisateurs. Pour des redirections basées sur les rôles, utilisez le code de la méthode 2: la fonction
sd_redirect_by_rolefonctionne même si l'élément de menu a été ajouté via l'extension. Le filtrelogin_redirects'exécute après la redirection de l'extension et la remplace.
Pourquoi la page de confirmation de déconnexion apparaît-elle toujours?
Certaines extensions de sécurité (Wordfence, Solid Security) outrepassent le comportement de déconnexion à leur propre niveau. Désactivez leur option de confirmation de déconnexion ou ajoutez l'URL de déconnexion à la liste blanche. Le code de la méthode 2 se déclenche avant la plupart des extensions, mais pas toutes; dans de rares cas, vous devrez peut-être configurer l'extension de sécurité elle-même.
En quoi WP-Recall diffère-t-il de Login or Logout Menu Item?
WP-Recall est une extension de tableau de bord membre complète: profils, messages privés, groupes, modules de commerce. La connexion et la déconnexion sont intégrées en tant que partie de l'écosystème. Login or Logout Menu Item résout exactement une tâche: un bouton dynamique de connexion/déconnexion dans le menu. Si vous avez besoin d'un tableau de bord membre complet avec de nombreuses fonctionnalités, regardez WP-Recall ou MemberPress. Si vous avez seulement besoin d'un bouton dans le menu, Login or Logout Menu Item est plus léger et n'apporte pas de superflu.
Que choisir pour votre site: extension ou code
La solution rapide pour un site type est l'extension Login or Logout Menu Item. Installez-la, remplissez trois champs dans les réglages, ajoutez l'élément de menu. Tout fonctionne en cinq minutes. Vingt mille installations actives et la compatibilité avec WP 7.0 confirment que l'outil est mature et maintenu.
Si votre logique de connexion n'est pas triviale (différentes redirections selon les rôles, intégration avec une extension d'adhésion, page de connexion personnalisée), utilisez le code de la méthode 2. C'est plus flexible mais exige de la prudence. Écrivez le code via Code Snippets, pas directement dans le fichier du thème. Une seule faute de frappe dans functions.php et le site tombe.
Une combinaison de l'extension pour le menu et du code pour les redirections est le compromis que nous utilisons sur la plupart des projets. L'extension fournit une gestion pratique de l'élément de menu et la prise en charge de l'éditeur de blocs. Le code personnalisé gère les exigences spécifiques de rôles et de redirections sans complexifier les paramètres de l'extension.
Choisissez en fonction de votre besoin, pas de la liste de quelqu'un d'autre. Pour un site simple avec un espace membre, l'extension suffit. Pour une place de marché ou une plateforme éducative, le code est indispensable. Dans tous les cas, gardez une sauvegarde avant de faire des modifications et testez sur une copie de staging.



