Avez-vous déjà remarqué à quel point il peut être déroutant pour les visiteurs de votre site WordPress lorsqu'ils sont connectés mais voient toujours des boutons « Connexion » ou « S'inscrire » partout ? Ou peut-être que vos membres ont du mal à trouver leur tableau de bord de compte car il est enfoui dans le menu.
Ces petites frustrations peuvent donner l'impression à vos utilisateurs les plus fidèles d'être des étrangers sur votre propre site web.
Et un menu personnalisé peut faire toute la différence. Afficher aux utilisateurs connectés des options comme « Mon compte » ou « Déconnexion » au lieu de liens génériques rend votre site plus accueillant et professionnel.
La bonne nouvelle ? Créer des menus dynamiques dans WordPress est plus facile que vous ne le pensez.
Dans ce guide, nous vous montrerons deux méthodes simples pour afficher différents menus aux utilisateurs connectés, quel que soit votre niveau de compétence. 💡

Pourquoi afficher différents menus aux utilisateurs connectés dans WordPress ?
Modifier différentes zones de votre site WordPress en fonction de vos visiteurs et de leur activité donne à votre site une impression de personnalisation pour chaque utilisateur.
Ce contenu personnalisé vous aide à améliorer l'expérience utilisateur sur votre site WordPress.
Maintenant, si vous gérez un site web où les utilisateurs n'ont pas besoin de s'inscrire ou de se connecter, vous pouvez probablement utiliser les mêmes menus de navigation sur votre site. Cependant, d'autres sites web peuvent grandement bénéficier de l'affichage de menus personnalisés pour les utilisateurs connectés.
Par exemple, des sites web comme une boutique en ligne, une plateforme d'apprentissage en ligne ou une communauté de site d'adhésion WordPress peuvent tous bénéficier de menus de navigation personnalisés.
Un menu de navigation personnalisé pour les utilisateurs connectés les aide à trouver plus facilement les éléments auxquels ils se sont inscrits.
Par exemple, un utilisateur sur une boutique en ligne peut gérer son compte, ou un membre d'une communauté payante peut facilement renouveler son abonnement ou consulter les cours en ligne exclusifs qu'il a achetés.

Par défaut, WordPress vous permet de créer autant de menus de navigation que vous le souhaitez. Cependant, vous ne pouvez choisir d'afficher qu'un seul menu à un emplacement particulier dans votre thème WordPress.
Avant de configurer des menus pour les utilisateurs connectés, vous devrez d'abord créer deux menus de navigation distincts. Un menu sera destiné aux utilisateurs connectés et l'autre aux utilisateurs déconnectés. Commençons.
⚠️ Une petite note ! Les méthodes que nous partageons sont conçues pour les personnes utilisant les thèmes classiques de WordPress. Si vous utilisez un thème basé sur des blocs avec les fonctionnalités d'édition complète de site (FSE) à partir de WordPress 5.8 et versions ultérieures, cette méthode pourrait ne pas fonctionner.
Créer des menus pour les utilisateurs connectés et non connectés dans WordPress
Pour créer des menus distincts pour les deux types d'utilisateurs, rendez-vous sur la page Apparence » Menus dans le tableau de bord WordPress.
Si vous avez déjà un menu de navigation que vous utilisez sur votre site web pour tous les utilisateurs, celui-ci peut être votre menu par défaut.

Après cela, vous pouvez cliquer sur le lien « créer un nouveau menu » pour créer un nouveau menu personnalisé pour vos utilisateurs connectés.
Ici, ajoutez les éléments de menu que vous souhaitez afficher aux utilisateurs enregistrés ou connectés. Par exemple, vous pourriez vouloir ajouter un lien de déconnexion à votre menu.
Sur le côté gauche de l'écran, vous pouvez voir une liste des pages de votre site web. Cochez simplement la case à côté de toute page que vous souhaitez ajouter à votre menu et cliquez sur le bouton « Ajouter au menu ».

Vous pouvez également faire glisser et déposer les éléments du menu sur le côté droit de l'écran pour les réorganiser.
Plus bas sur la page, vous pouvez choisir un emplacement pour afficher votre menu. Mais vous n'avez pas besoin d'attribuer un emplacement à ce menu maintenant. Nous le ferons plus tard dans l'article.
N'oubliez pas de cliquer sur le bouton « Enregistrer le menu » pour sauvegarder vos modifications.
Pour plus de détails sur la création de menus, consultez notre guide pour débutants sur les menus de navigation WordPress.
Maintenant, vous êtes prêt à afficher différents menus aux utilisateurs connectés. Voici un aperçu rapide de toutes les méthodes que nous aborderons dans ce guide :
- Méthode 1. Afficher différents menus aux utilisateurs connectés dans WordPress à l'aide d'un plugin
- Méthode 2. Sélectionner manuellement le menu pour les utilisateurs connectés dans WordPress à l'aide de code
- Astuce bonus : Autres cas d'utilisation de la logique conditionnelle dans les menus WordPress
- FAQ : Afficher différents menus aux utilisateurs connectés dans WordPress
- Ressources supplémentaires : Rôles des utilisateurs WordPress et navigation du site
Prêt à créer une expérience plus personnalisée ? Plongeons dans le vif du sujet ! 🌟
Méthode 1. Afficher différents menus aux utilisateurs connectés dans WordPress à l'aide d'un plugin
Le moyen le plus simple d'afficher différents menus aux utilisateurs connectés est d'utiliser le plugin Conditional Menus. Installons-le et activons-le donc d'abord.
Pour plus de détails, vous pouvez consulter notre guide étape par étape sur comment installer un plugin WordPress.
Après l'activation, vous devrez naviguer vers Apparence » Menus depuis votre tableau de bord WordPress. Ensuite, basculez vers l'onglet « Gérer les emplacements ».
À partir de là, vous verrez la liste des emplacements de menu disponibles définis dans votre thème WordPress et les menus qui s'affichent actuellement.
Par exemple, notre emplacement « Menu principal » affiche actuellement un « Menu principal ».

Maintenant, nous devons indiquer au plugin d'afficher un menu différent lorsqu'une certaine condition est remplie.
Pour ce faire, cliquons sur le lien « + Menu conditionnel ». Ensuite, vous pouvez sélectionner le menu de navigation que vous souhaitez afficher aux utilisateurs connectés dans le menu déroulant.

Ensuite, vous devrez cliquer sur le lien « + Conditions ».
Cela ouvrira une fenêtre contextuelle où vous verrez un tas de conditions à choisir.

Cochez simplement la case à côté de l'option « Utilisateur connecté », puis cliquez sur le bouton « Enregistrer ».
Vous pouvez maintenant visiter votre site Web pour voir le menu utilisateur connecté en action. Vous pouvez également vous déconnecter de votre administration WordPress pour afficher le menu de navigation qui sera montré à tous les autres utilisateurs.

Méthode 2. Sélectionner manuellement le menu pour les utilisateurs connectés dans WordPress à l'aide de code
Cette méthode nécessite l'ajout de code à votre site Web WordPress. Si vous ne l'avez jamais fait auparavant, consultez notre guide sur comment copier et coller des extraits de code dans WordPress.
En général, les blogs vous diront que vous devez ajouter un extrait de code au fichier functions.php de votre thème ou à un plugin spécifique au site. Cependant, nous ne recommandons pas cette méthode car elle peut potentiellement causer des problèmes avec votre site Web.
Au lieu de cela, vous pouvez utiliser le plugin WPCode.
WPCode vous permet d'ajouter des extraits de code personnalisés à votre site sans modifier directement les fichiers du thème. Il vous aide également à gérer ces extraits et garantit qu'ils sont exécutés en toute sécurité, minimisant ainsi le risque de casser votre site.
ℹ️ Note : Sur toutes nos marques partenaires, WPCode a été notre outil de prédilection pour ajouter des extraits personnalisés afin d’étendre les fonctionnalités de chaque site. Si vous souhaitez en savoir plus, vous pouvez lire notre avis complet sur WPCode.
Pour commencer, installons le plugin WPCode. Vous pouvez utiliser la version gratuite de WPCode, car elle dispose de toutes les fonctionnalités dont vous avez besoin pour afficher différents menus aux utilisateurs connectés.
Mais si vous souhaitez accéder à des fonctionnalités avancées comme l’historique des révisions de code et la planification de la mise en ligne des extraits, envisagez alors de passer à WPCode Pro.
Une fois installé, vous devrez naviguer vers Extraits de code » + Ajouter des extraits.

Cela ouvrira la galerie d’extraits de code de WPCode.
À partir de là, vous pouvez cliquer sur le bouton « + Ajouter un extrait personnalisé ».

Vous arriverez alors à l'éditeur de texte de WPCode.
L'étape suivante consiste à ajouter un titre à votre extrait de code et à choisir « Extrait HTML » dans le menu déroulant « Type de code ».

Une fois terminé, copiez et collez simplement le code suivant dans le champ « Aperçu du code » :
function my_wp_nav_menu_args( $args = '' ) {
if( is_user_logged_in() ) {
// Logged in menu to display
$args['menu'] = 43;
} else {
// Non-logged-in menu to display
$args['menu'] = 35;
}
return $args;
}
add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );
Voici à quoi cela pourrait ressembler dans votre éditeur WPCode :

Assurez-vous de remplacer 43 et 35 par les identifiants des menus de navigation que vous avez créés précédemment.
Vous pouvez trouver l'identifiant d'un menu de navigation en le sélectionnant sur la page « Menus ». Vous verrez le numéro d'identifiant du menu dans la barre d'adresse de votre navigateur.

Une fois que vous vous assurez que tous les détails sont corrects, cliquez sur le bouton bleu « Enregistrer l'extrait ».
Et c’est tout !
Astuce bonus : Autres cas d'utilisation de la logique conditionnelle dans les menus WordPress
En matière de navigation, la logique conditionnelle peut faire plus que simplement afficher différents menus aux utilisateurs connectés. Voici quelques exemples rapides :
- Afficher différents menus en fonction du rôle de l'utilisateur : Vous pouvez afficher un menu différent pour les administrateurs par rapport aux collaborateurs. Par exemple, affichez des options réservées aux administrateurs comme les paramètres du site ou la gestion des utilisateurs pour les administrateurs, tout en proposant des liens de navigation généraux aux collaborateurs ou à d'autres rôles d'utilisateurs.
- Afficher différents menus sur différentes pages : Vous souhaitez un menu unique sur votre page de blog ou vos pages de produits ? La logique conditionnelle vous permet de créer des menus spécifiques pour chacun, en gardant la navigation adaptée au contenu.
- Masquer la navigation sur les pages de destination : Les pages de destination fonctionnent mieux sans distractions. Utilisez la logique conditionnelle pour masquer votre menu de navigation et concentrer l'attention sur votre appel à l'action, comme un formulaire d'inscription ou une offre de produit.
Pour en savoir plus, vous pouvez consulter notre guide sur comment ajouter une logique conditionnelle aux menus dans WordPress.
FAQ : Afficher différents menus aux utilisateurs connectés dans WordPress
Vous avez encore des questions sur l'affichage de différents menus pour les utilisateurs dans WordPress ? Voici quelques réponses rapides pour vous aider :
Puis-je afficher différents menus en fonction des rôles des utilisateurs ?
Absolument. Vous pouvez afficher des menus uniques pour les administrateurs, les éditeurs ou tout autre rôle d'utilisateur personnalisé sur votre site. Le plugin Conditional Menus offre une option simple pour cela, ce qui est parfait pour adapter la navigation à vos membres d'équipe.
Est-il préférable d'utiliser un plugin ou d'ajouter du code manuellement ?
Pour la plupart des utilisateurs, nous recommandons d'utiliser un plugin comme Conditional Menus ou WPCode. Ces outils facilitent l'affichage de différents menus sans toucher aux fichiers de votre thème.
WPCode est particulièrement utile si vous préférez la flexibilité d'utiliser du code. Il vous permet d'ajouter en toute sécurité des snippets PHP personnalisés et de les gérer depuis votre tableau de bord WordPress – pas besoin de modifier directement functions.php.
Le codage manuel reste une bonne option pour les développeurs, mais pour tous les autres, un plugin est le choix le plus sûr et le plus adapté aux débutants.
Puis-je masquer le menu de navigation sur certaines pages ?
Oui, vous pouvez utiliser la même logique conditionnelle pour masquer votre menu de navigation sur des pages spécifiques. C'est une stratégie populaire pour les pages de destination, car elle élimine les distractions et maintient le visiteur concentré sur votre appel à l'action.
Ressources supplémentaires : Rôles des utilisateurs WordPress et navigation du site
Nous espérons que cet article vous a aidé à apprendre comment afficher facilement différents menus de navigation aux utilisateurs connectés dans WordPress. Ensuite, vous voudrez peut-être aussi consulter nos guides sur :
- Comment autoriser l'inscription des utilisateurs sur votre site WordPress
- Comment permettre aux utilisateurs d'inviter leurs amis à s'inscrire dans WordPress
- Comment modérer les nouvelles inscriptions d'utilisateurs dans WordPress
- Comment empêcher WordPress de vous oublier avec « Se souvenir de moi »
- Comment saluer chaque utilisateur avec un message de bienvenue personnalisé dans WordPress
- Comment restreindre vos formulaires WordPress aux seuls utilisateurs connectés
- Comment styliser les menus de navigation WordPress
- Meilleurs plugins d'adhésion WordPress
Si cet article vous a plu, abonnez-vous à notre chaîne YouTube pour des tutoriels vidéo WordPress. Vous pouvez également nous retrouver sur Twitter et Facebook.

Jan-Paul Kleijn
Au début, j'ai pensé à un plugin. Il faut que j'arrête de penser comme ça.
Puis j'ai vu votre post et j'ai été convaincu.
Merci d'avoir posté ceci, vous m'avez beaucoup aidé.
Phil
Merci beaucoup pour cela. Ça marche parfaitement.
Ariet
Bonjour,
Ça marche totalement !
Mais ça change aussi mon menu de pied de page... y a-t-il un moyen de garder mon menu de pied de page tel quel ?
Tarron Acuff
Donc, j'ai 2 menus. Un pour le public et un autre que j'aimerais que les employés voient lorsqu'ils sont connectés. Le menu employé remplacerait le menu principal uniquement lorsqu'un employé est connecté.
Voici ce que j'utilise actuellement dans mon fichier functions.php
// Définir le rôle comme classe de corps
function add_role_to_body( $classes ) {
$user = wp_get_current_user();
$user_roles = $user->roles;
foreach( $user_roles as $role ) {
$classes[] = ‘role-‘ . $role;
}
return $classes;
}
add_filter( ‘body_class’, ‘add_role_to_body’ );
***Voici ce que j'ai ajouté pour le CSS***
/* Cacher d'abord les éléments du menu pour les utilisateurs non "employés" */
#top-menu li.menu-for-employee {
display: none;
}
/* Afficher les éléments du menu pour l'utilisateur "employé" */
.role-employee #top-menu li.menu-for-employee {
display: initial;
}
Lorsque je me connecte en tant qu'employé, les deux menus s'affichent.
Merci d'avance.
Wasim
ça ne marche pas pour moi. Il affiche le menu par défaut après que j'aie ajouté ce code, même mon menu principal a disparu.
Joe
Salut les gars,
Joli tutoriel, mais je me demandais si vous pouviez utiliser la même approche pour remplacer un menu réactif à une certaine taille d'écran ?
J'ai deux menus mais je préférerais n'en avoir qu'un seul menu réactif à 768 px en remplaçant le menu par un autre.
Merci
Pet
Excellent travail avec vos guides. Je construis mon premier site WordPress et je trouve votre site incroyablement utile pour me guider, merci.
Je voulais vraiment afficher des menus différents pour les utilisateurs connectés (comme « modifier le profil ») et pour les utilisateurs déconnectés, et c'est ce qui m'a amené ici. Le code que vous avez partagé fonctionne bien pour moi. J'ai maintenant deux menus qui s'affichent bien. Cependant, la dernière partie du code, add filter string, je crois, me pose un peu problème. Maintenant, un autre menu s'affiche sous le widget de la barre latérale. Le menu « connecté ». J'utilise le thème Sydney et j'ai essayé en vain de supprimer ce menu inutile. Avez-vous une idée sur la façon dont je peux l'empêcher de s'afficher ?
Support WPBeginner
Salut Pet,
Veuillez vérifier la page Apparence » Widgets pour voir si vous avez un menu personnalisé ajouté en tant que widget. S'il y est, vous pouvez simplement supprimer ce widget.
Admin
Pet
What genius! It worked! Thanks for the wonderful tip!!
Jomcy Johny
J'ai le même problème... Aidez-moi s'il vous plaît... mais je n'ai pas de widgets... Merci !
Alex Hammerschmied
Works like a charm…
Thanks for that.
Btw i love theses short tutorials
giovanna
Salut, pouvez-vous m'aider s'il vous plaît ? J'ai un autre problème s'il vous plaît ? Je dois en cacher un à tout le monde et permettre uniquement aux vendeurs de voir ce que j'ai à faire s'il vous plaît ? quel est le code spécifique que je dois utiliser s'il vous plaît ?
ericlee
Lorsque vous modifiez le functions.php comme ceci, ne sera-t-il pas effacé lors de la mise à niveau de votre prochaine version de WP ?
Support WPBeginner
Oui, cela sera supprimé lors de la mise à jour de votre thème. Pour éviter cela, vous pouvez créer un plugin spécifique au site.
Admin
Ramona
Est-ce que cela fonctionnera pour une installation Buddypress ? Merci.
Nikhil Chaudhari
la fonction définit le menu secondaire aussi ? je veux seulement définir le menu principal. comment faire
Nikhil Chaudhari
cette fonction ci-dessus définit le menu secondaire, tout ce que je veux définir est le menu d'en-tête ?
comment faire cela
Asfaha
Bonjour,
merci beaucoup pour cette solution, je l'ai appliquée et elle fonctionne parfaitement et m'a évité d'installer un plugin supplémentaire.
Shafaq
voici le code pour remplacer le menu existant par le menu de l'utilisateur connecté en ajoutant l'emplacement top-menu et avec le menu loggedin pas besoin d'une instruction else avec ceci
add_filter( ‘wp_nav_menu_args’, function ( $args )
{ if( is_user_logged_in() && $args[‘theme_location’] === ‘top-menu’ ) { $args[‘menu’] = ‘loggedin’; } return $args; });
Ashraf Ali
———————————————————–
function my_wp_nav_menu_args( $args = ” ) {
if( is_user_logged_in() ) { $args[‘menu’] = ‘logged-in’; } else { $args[‘menu’] = ‘logged-out’; } return $args; } add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ ); ———————————————————–
Maintenant, comment faire pour que cela fonctionne avec
—————————————————
———————————————————————————————————————-
S'il vous plaît, conseillez
Iqbal Mahmud
Si je veux cacher une page aux utilisateurs déconnectés dans un menu unique, que dois-je faire ?
Kasper
Vous pouvez verrouiller des pages pour les masquer aux utilisateurs déconnectés. Il existe plusieurs plugins qui rendent cela très facile. Users Ultra me vient à l'esprit.
Zev
Tout a fonctionné parfaitement.
Cependant, j'ai toujours le problème d'un menu principal répété dans la section du menu de navigation secondaire que je n'arrive pas à supprimer (je n'ai pas de menu secondaire configuré).
Vince
J’ai exactement le même problème. Le changement se reflète dans l'emplacement du menu secondaire sans raison apparente et je n'ai pas non plus de menu secondaire configuré. :/ S'il vous plaît, conseillez-moi comment gérer cela.
Merci d'avance.
Chiranjeevi Vinodkumar
ÉCOUTEZ !!!
La plupart d'entre nous utilisent des thèmes.
Allez donc d'abord dans le fichier functions.php de votre thème.
Recherchez avec « navigation » comme mot-clé.
Dans le cas du thème Shopkeeper..
==================================================================
register_nav_menus( array(
‘top-bar-navigation’ => __( ‘Navigation Barre Supérieure’, ‘shopkeeper’ ),
‘main-navigation’ => __( ‘Navigation Principale’, ‘shopkeeper’ ),
‘footer-navigation’ => __( ‘Navigation Pied de Page’, ‘shopkeeper’ ),
===================================================================
C'est comme ça que vous regardez... alors choisissez celui qui est principal. Dans mon cas, c'est « Navigation de la barre supérieure », d'où l'utilisation de « top-bar-navigation »
J'ai utilisé le code suivant et cela a fonctionné à merveille !!!
C'est ma façon de remercier l'auteur.
Bonjour !!
Ann Novakowski
Voici ce qui a fonctionné pour moi avec WP. Je l'ai utilisé pour créer un menu principal spécifique pour les utilisateurs Buddypress connectés. Cela n'affectera pas mon menu de pied de page OU mon menu de médias sociaux pour les visiteurs, donc tout le monde verra les mêmes menus secondaires, qu'ils soient connectés ou non. Ceci est basé sur tous les commentaires ci-dessus (HT à Fransiska !).
J'ai ajouté ce qui suit au fichier functions.php de mon thème enfant :
// CHANGER LE MENU PRINCIPAL =UNIQUEMENT= SI LE MEMBRE EST CONNECTÉ
function my_wp_nav_menu_args( $args = ” ) {
if ($args[‘theme_location’] == ‘primary’) {
if( is_user_logged_in()) {
$args[‘menu’] = ‘logged-in’;
}else{
$args[‘menu’] = ‘logged-out’;
}
}
return $args;
}
add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ );
Oliver
Je ne sais pas ce qui s'est passé avec mon commentaire, mais –> ” <– ceux-ci sont corrects !
fidel toro
merci !! ça m'a beaucoup aidé
Matthias Campbell
Bonjour,
J'ai ajouté ce code (probablement à tort) dans mon fichier functions.php de mon thème dans l'éditeur WordPress et maintenant j'ai une erreur serveur 500 constante. Même après avoir supprimé le code.
Avant cela, j'ai essayé de créer un plugin spécifique au site, mais cela n'a pas fonctionné. Pourriez-vous me dire si l'extrait de code nécessite une accolade ouvrante et fermante ?
Si oui, comment puis-je faire cela ?
Mon hébergeur ne peut pas m'aider maintenant et ils me demandent de payer un programmeur pour m'aider à 50€ de l'heure. S'il vous plaît, aidez-moi. C'est urgent.
Je suis toujours connecté à WordPress, mais quoi que je clique, j'obtiens l'erreur 500 avec cette erreur spécifique.
PHP Parse error: syntax error, unexpected '}' in line 1194.
C'est parce que j'ai collé l'extrait de code après tout le texte dans le fichier functions.php.
J'ai ensuite supprimé l'extrait de code pour voir si cela résoudrait le problème, via l'éditeur et FTP, et j'ai toujours l'erreur.
J'attends votre réponse avec impatience.
Cordialement
Support WPBeginner
Cela dépend de l'endroit où vous ajoutez le code. S'il y a une balise PHP fermante avant, vous devez ajouter une balise de début PHP comme <?php
Si ce code est la dernière chose dans le fichier functions, vous n'avez pas besoin d'ajouter une balise de fermeture.
Admin
Hubert
Si vous avez plusieurs emplacements de menu et que vous souhaitez appliquer des menus différents pour chaque emplacement, vous pouvez utiliser le code ci-dessous :
function my_wp_nav_menu_args( $args = ” ) {
// Emplacement du menu principal
if( ‘primary-main’ == $args[‘theme_location’] ) {
if( is_user_logged_in() ) {
$args[‘menu’] = ‘Primary-Logged-In’;
} else {
$args[‘menu’] = ‘Primary-Logged-Out’;
}
return $args;
}
// Emplacement du menu secondaire
if( ‘secondary-menu’ == $args[‘theme_location’] ) {
if( is_user_logged_in() ) {
$args[‘menu’] = ‘Secondary-Logged-In’;
} else {
$args[‘menu’] = ‘Secondary-Logged-Out’;
}
return $args;
}
}
add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ );
Haji
Cela ne fonctionne pas, quelqu'un connaît le code approprié si vous avez 2 menus ou plus ?
Ravikant
Parfait mec. Ça marche... excellent travail
Leopold
C’était presque trop facile !
Merci beaucoup pour cet article simple.
De cette façon, je n'ai pas à installer de plugin..
Gaurang
Je pense qu'il vaut mieux utiliser le plugin IF MENU. https://wordpress.org/plugins/if-menu/
En créant deux menus distincts comme celui-ci, l'utilisateur doit créer/mettre à jour le menu deux fois.
Chris
Salut Gaurang,
Je suis curieux de savoir pourquoi vous pensez que l’utilisation du plugin est meilleure que le codage du fichier functions.php ? On m’a dit il y a quelque temps de faire attention au nombre de plugins réellement utilisés pour un site WordPress, et le code ci-dessus semble assez simple ; moins le fait de devoir surveiller chaque fois que votre thème est mis à jour…
Merci,
Rub
Super, comment puis-je l'utiliser pour afficher le menu pour un utilisateur connecté qui a un rôle spécifique ?
Kit Johnson
Cela a fonctionné si simplement et proprement. Je ne pensais pas que ce serait aussi facile. Merci !
Jason Sisson
c'est génial, je l'ai essayé. ça marche. mais j'aimerais aussi rediriger par rôle
est-ce simple ou beaucoup plus difficile
Ryan R. Bayne
Merci. C'est la première fois que je travaille avec des fonctions de menu.
Création du plugin WTG Portal Manager qui permettra de définir très rapidement un portail. Chaque portail ayant son propre menu. Le plugin rend la relation entre le portail et le menu plus claire et offre d'autres options uniques.
veer2412
comment puis-je montrer différents articles à différents utilisateurs ??
veer2412
merci pour l'aide.. mais que faire si je veux montrer différents articles à différents utilisateurs sur mon site.. y a-t-il un moyen de le faire en codant ??
L'équipe de WPBeginner
Sous Apparence > Menus, vous devez choisir un emplacement pour votre menu. Il semble y avoir deux zones sur votre site où vous pouvez ajouter des menus. Vous devez donc créer deux menus différents, puis leur attribuer un emplacement.
Heather Gile
Quel serait le code révisé pour cela, s'il y avait une distinction entre « Primaire » et « Haut » ?
$args[‘primary-menu’] = ‘logged-in’;
$args[‘top-menu’] = ‘logged-in’;
sinon
$args[‘primary-menu’] = ‘logged-out’;
$args[‘top-menu’] = ‘logged-out’;
?
Kyle
Wordpress ne me permet pas de mettre 2 menus dans mon emplacement « en-tête supérieur ». Le code que vous avez fourni fonctionne, mais il a changé TOUS mes menus en connecté ou déconnecté, et n'affiche pas mon menu de navigation normal
b2995
J'ai un menu supérieur ainsi qu'un menu de site (sous le logo). Comment modifier le code pour changer uniquement ce menu supérieur. Actuellement, TOUS mes menus changent.
Harry Slyman
You saved my day! thank you
Rob
OMG, ça m'a fait rire tellement c'était simple... merci !
Melih
Illustratif et facile, merci beaucoup.
Rohit Gahlot
Working ..
Thanks a lot
Seth
Merci pour cela.
Sur la page d'accueil, les noms de menus qui ont un sous-menu (un menu déroulant) n'affichent pas le menu déroulant. Lorsque je vais sur une autre page que ma page d'accueil, ce n'est pas un problème, et tous les éléments du menu sont affichés.
C'est le cas sur la page d'accueil pour les éléments connectés et déconnectés. Une idée pour résoudre ce problème ? Merci
http://www.viridianmgt.com/wordpress
Support WPBeginner
Cela ressemble à un problème de thème. Contactez le support de votre thème.
Admin
Wouter Bredenbeek
Modifier uniquement un certain menu peut être réalisé en changeant $args[‘menu’] = ‘logged-in’;
en $args[‘secondary-menu’] = ‘logged-in’;, par exemple. Cela devrait fonctionner !
DANIEL
Ce code ne fonctionne pas. J'ai enregistré un 'primary-menu' et un 'secondary-menu' et j'essaie la fonction fournie avec votre modification des arguments, aucun changement de menu.
J'ai corrigé cela en utilisant ce code :
function my_wp_nav_menu_args( $args = "" ) { if ($args[‘theme_location’] == ‘secondary-menu’) { if( is_user_logged_in()) { $args[‘menu’] = ‘logged-in’; }else{ $args[‘menu’] = ‘logged-out’; } }else{ $args[‘menu’] = ‘Principal’; } return $args; }
add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ );
REMARQUE : 'Principal' est le nom du menu statique principal.
Rory PQ
Si proche, mes menus de pied de page et principaux changent tous les deux. J'essaie de changer uniquement mon menu de pied de page. J'ai essayé tellement de variations de ce code, mais sans succès. Des idées de solution ?
Lorsque j'ai inspecté mon thème avec Firebug, il disait que mon pied de page est "id=footer-nav". Devrais-je utiliser ce nom plutôt que "secondary-menu" ?
Merci beaucoup
lemonthirst
Hourra ! Je l'ai enfin trouvé, je n'aurais jamais imaginé qu'une fonction aussi simple me faciliterait autant le travail. Merci les gars !
Grant
Lorsque j'essaie d'entrer le code dans le fichier functions.php, j'obtiens l'erreur suivante :
Parse error: syntax error, unexpected '03' (T_LNUMBER) in /home/grantkessler/public_html/wp-content/themes/GameNews/functions.php on line 201
Stevie Allison
Parfait, exactement ce que je cherchais. Je vais l'essayer maintenant. Merci
Stevie Allison
Ça marche parfaitement. Merci
Alex
Un grand merci pour le partage du code, mais il ajoute vraiment ce menu dans toutes les zones ! Y a-t-il un moyen de l'afficher uniquement dans un menu spécifique ?
shanewaj rahman
Merci, Vous avez rendu cela si facile.
zaman
J'ai créé un plugin spécifique au site et les menus fonctionnent bien, mais mon menu de pied de page est également modifié, il n'affiche pas celui que j'ai sélectionné mais celui pour les utilisateurs connectés ou déconnectés.
Support WPBeginner
Les menus WordPress de Zaman ont des emplacements qui leur sont attribués. Assurez-vous d'utiliser un menu différent pour l'emplacement du menu du pied de page.
Admin
Grant
Salut, quand j'essaie d'insérer le code, cela perturbe complètement mon site et affiche le message d'erreur :
function my_wp_nav_menu_args( $args = ” ) { if( is_user_logged_in() ) { $args[‘menu’] = ‘logged-in’; } else { $args[‘menu’] = ‘logged-out’; } return $args; } add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ );
Avertissement : Impossible de modifier les informations d'en-tête – les en-têtes ont déjà été envoyés par (sortie démarrée à /homepages/5/d156331781/htdocs/reviewthegame/wp-content/themes/Made-Theme/made/functions.php:12) dans /homepages/5/d156331781/htdocs/reviewthegame/wp-includes/pluggable.php à la ligne 899
joseph
Y a-t-il un moyen de n'appliquer cela qu'à un menu spécifique ?
J'ai essayé ceci :
if( $args->theme_location == ‘primary-menu’ ) {
//Code ici
}
mais ça ne marche pas. Des idées pour y parvenir ?
shanewaj rahman
Voici ce que j'ai fait pour surmonter le problème des deux menus.
J'ai supprimé cette fonction et mis ce code dans le header.php
where I was calling my menu.
false,
‘menu_id’ => ‘nav’,
‘menu’ => ‘Registered’,
‘items_wrap’ => ‘%3$s’)
);
}
else
{
wp_nav_menu( array(‘container’ => false,
‘theme_location’ => ‘primary’,
‘menu_id’ => ‘nav’,
‘items_wrap’ => ‘%3$s’,
) );
}?>
Fransiska
Utiliser
if ($args[‘theme_location’] == ‘primary’)
à la place et cela fonctionnera
Gerald Tyler
Fransiska, pouvez-vous expliquer davantage votre suggestion ? J'ai plusieurs sous-menus que je place dans les barres latérales, et la solution sur cette page transforme tous ces menus courts en menus complets avec tous les noms des menus principaux, aucun de mes divers menus personnalisés. Votre suggestion semble indiquer que nous pouvons appliquer cette astuce uniquement à la position du menu principal, pas aux barres latérales. Est-ce logique ? Pouvez-vous fournir le code complet ? Je n'arrive pas à deviner comment il s'assemble.
joseph
25 oct. 2013 à 1:16
Y a-t-il un moyen de n'appliquer cela qu'à un menu spécifique ?
J'ai essayé ceci :
if( $args->theme_location == ‘primary-menu’ ) {
//Code ici
}
mais ça ne marche pas. Des idées pour y parvenir ?
Fransiska
31 janv. 2014 à 2:53
Utiliser
if ($args[‘theme_location’] == ‘primary’)
à la place et cela fonctionnera
Jamie Mannion
Super astuce, elle est arrivée au bon moment dans le développement de mon site.
Ça marche à merveille ! Je pense que je vais l'étendre pour afficher différents menus pour différents user_meta.
Merci de partager !
karen
Salut, merci pour ça, très utile. bien que je ne sois toujours pas sûr où mettre le code ?
(Après avoir créé les menus, ajoutez ce code dans le fichier functions.php de votre thème ou un plugin spécifique au site) – où se trouve le fichier functions.php ?
merci
Support WPBeginner
Allez dans Apparence » Éditeur, vous verrez le fichier functions.php dans la liste des fichiers sur votre droite. Cependant, si vous ne voyez pas de fichier functions.php, cela signifie que vous utilisez un framework de thème ou un thème enfant. Dans ce cas, vous devez créer un plugin spécifique à votre site et ajouter ce code à l'intérieur de ce plugin. Consultez notre guide sur plugin spécifique au site.
Admin
Cathy Earle
Super astuce. J'ai hâte de l'utiliser dans une future conception.