Tutoriels WordPress de confiance, quand vous en avez le plus besoin.
Guide du débutant pour WordPress
WPB Cup
25 millions+
Sites web utilisant nos plugins
16+
Années d'expérience WordPress
3000+
Tutoriels WordPress par des experts

Comment afficher différents menus aux utilisateurs connectés dans WordPress

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. 💡

Afficher différents menus de navigation aux utilisateurs connectés et non connectés dans WordPress

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.

Menu différent pour les utilisateurs connecté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.

Menu principal

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 ».

Menu connecté

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 :

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 ».

Gérer les emplacements de menu

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.

Sélectionner le menu connecté

Ensuite, vous devrez cliquer sur le lien « + Conditions ».

Cela ouvrira une fenêtre contextuelle où vous verrez un tas de conditions à choisir.

Sélectionner l'utilisateur connecté comme condition

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.

Menu différent pour les utilisateurs connectés

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.

Bouton Ajouter un extrait dans WPCode

Cela ouvrira la galerie d’extraits de code de WPCode.

À partir de là, vous pouvez cliquer sur le bouton « + Ajouter un extrait personnalisé ».

Bouton Ajouter un extrait personnalisé dans WPCode

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 ».

Ajout du titre du snippet et choix du type de code dans WPCode

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 :

Le snippet HTML personnalisé dans l'aperçu du code de 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.

Trouver l'ID du menu de navigation

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 :

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.

Avis : Notre contenu est financé par nos lecteurs. Cela signifie que si vous cliquez sur certains de nos liens, nous pouvons percevoir une commission. Voir comment WPBeginner est financé, pourquoi c'est important et comment vous pouvez nous soutenir. Voici notre processus éditorial.

La boîte à outils WordPress ultime

Accédez GRATUITEMENT à notre boîte à outils - une collection de produits et de ressources liés à WordPress que tout professionnel devrait posséder !

Interactions des lecteurs

101 CommentsLeave a Reply

  1. 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é.

  2. 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 ?

  3. 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.

  4. ç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.

  5. 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

  6. 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 ?

  7. 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 ?

  8. 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 ?

  9. la fonction définit le menu secondaire aussi ? je veux seulement définir le menu principal. comment faire

  10. 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

  11. 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.

  12. 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; });

  13. ———————————————————–
    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

  14. Si je veux cacher une page aux utilisateurs déconnectés dans un menu unique, que dois-je faire ?

    • 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.

  15. 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é).

    • 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.

  16. É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 !!

  17. 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’ );

  18. 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

    • 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

  19. 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’ );

  20. C’était presque trop facile !
    Merci beaucoup pour cet article simple.

    De cette façon, je n'ai pas à installer de plugin..

    • 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,

  21. Super, comment puis-je l'utiliser pour afficher le menu pour un utilisateur connecté qui a un rôle spécifique ?

  22. 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

  23. 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.

  24. 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 ??

  25. 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.

    • 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’;

      ?

    • 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

  26. 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.

  27. 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

  28. 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 !

    • 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.

      • 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

  29. Hourra ! Je l'ai enfin trouvé, je n'aurais jamais imaginé qu'une fonction aussi simple me faciliterait autant le travail. Merci les gars !

  30. 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

  31. 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 ?

  32. 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.

  33. 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

  34. 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 ?

    • 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’,
      ) );
      }?>

    • Utiliser

      if ($args[‘theme_location’] == ‘primary’)

      à la place et cela fonctionnera

      • 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

  35. 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 !

  36. 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

    • 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

Laisser un commentaire

Merci d'avoir choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre politique de commentaires, et votre adresse e-mail ne sera PAS publiée. Veuillez NE PAS utiliser de mots-clés dans le champ du nom. Ayons une conversation personnelle et significative.