Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Coupe WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Comment ajouter des articles personnalisés à des menus WordPress spécifiques

Note éditoriale : Nous percevons une commission sur les liens des partenaires sur WPBeginner. Les commissions n'affectent pas les opinions ou les évaluations de nos rédacteurs. En savoir plus sur Processus éditorial.

Vous souhaitez ajouter des articles personnalisés à des menus WordPress spécifiques ?

Les menus WordPress sont des menus de navigation qui s’affichent en haut de la plupart des sites web. Il peut arriver que vous souhaitiez afficher des articles personnalisés autres que des liens simples dans les menus de navigation.

Dans cet article, nous allons vous afficher comment ajouter facilement des articles personnalisés à des menus WordPress spécifiques.

Adding custom items to WordPress menus

Pourquoi ajouter des articles personnalisés aux menus de WordPress ?

Les menus WordPress sont des liens de navigation généralement affichés en haut d’un site. Sur les appareils mobiles, ils s’affichent souvent lorsque vous appuyez sur une icône de menu.

example navigational menu

Comme il s’agit d’un emplacement important dans la mise en page d’un site WordPress typique, il est judicieux d’en tirer parti en plaçant des éléments personnalisés autres que des liens simples dans le menu.

Par exemple, certains utilisateurs/utilisatrices peuvent vouloir afficher le formulaire de recherche comme nous le faisons sur WPBeginner. Un site d’adhésion peut vouloir afficher les liens de connexion et de déconnexion, ou vous pouvez vouloir ajouter des icônes ou des images à votre menu.

Par défaut, les menus de navigation sont conçus pour afficher des liens en texte simple. Il est toutefois possible de placer des articles personnalisés dans les menus de WordPress.

Ceci étant dit, voyons comment vous pouvez ajouter des éléments personnalisés à des menus spécifiques dans WordPress tout en gardant le reste de votre menu de navigation intact.

Ajouter des articles personnalisés à des menus de navigation spécifiques dans WordPress

Il existe différentes façons d’ajouter des éléments personnalisés à un menu de navigation dans WordPress. Cela dépend du type d’article personnalisé que vous essayez d’ajouter.

Nous allons vous afficher quelques-uns des exemples les plus courants. Vous devrez utiliser des extensions pour certains d’entre eux, tandis que d’autres nécessiteront l’ajout d’un peu de code.

Si vous souhaitez passer directement à une certaine section, vous pouvez utiliser cette table des matières :

Premiers pas.

1. Ajout d’une fenêtre surgissante de recherche dans le menu de WordPress

Normalement, vous pouvez ajouter un formulaire de recherche à votre colonne latérale WordPress en utilisant le widget ou le bloc Recherche par défaut. Cependant, il n’y a aucun moyen d’ajouter la recherche au menu de navigation par défaut.

Certains thèmes WordPress disposent d’une option permettant d’ajouter une boîte de recherche à la zone de votre menu principal. Si ce n’est pas le cas du vôtre, vous pouvez utiliser la méthode ci-dessous.

Pour cela, vous devez installer et activer le plugin SearchWP Modal Search Form. Pour plus de détails, consultez notre guide étape par étape sur l’installation d’une extension WordPress.

Ce module est une extension pour SearchWP, qui est le meilleur plugin de recherche WordPress sur le marché.

Le module est gratuit et fonctionne également avec la recherche par défaut de WordPress. Cependant, nous recommandons de l’utiliser avec SearchWP si vous souhaitez améliorer votre recherche WordPress.

Après avoir installé le module, il suffit de se rendre sur la page Apparence  » Menus. Dans la colonne  » Ajouter des éléments de menu « , cliquez sur l’onglet  » Formulaires de recherche modale SearchWP  » pour le déplier.

Add search to menu

Sélectionnez votre moteur de recherche, puis cliquez sur le bouton Ajouter au menu.

L’extension ajoutera la recherche à votre menu de navigation. Cliquez sur le ‘Formulaire de recherche modale’ sous vos éléments de menu pour le déplier et modifier le libellé en Recherche ou tout autre élément de votre choix.

Change search label

N’oubliez pas de cliquer sur le bouton Enregistrer le menu pour stocker vos modifications.

Vous pouvez désormais visiter votre site et voir que la fonction Rechercher a été ajoutée à votre menu de navigation. En cliquant dessus, le formulaire de recherche s’ouvrira dans une fenêtre surgissante de type visionneuse.

Search in navigation menu

Pour plus de détails, consultez notre guide sur l’ajout d’un bouton de recherche dans un menu WordPress.

2. Ajouter des icônes et des images personnalisées à des menus spécifiques

Un autre article personnalisé populaire que les utilisateurs/utilisatrices souhaitent souvent ajouter à un menu spécifique est une image ou une icône.

Pour cela, vous aurez besoin d’installer et d’activer l’extension Menu Image Icône. Pour plus de détails, consultez notre guide pas à pas sur l’installation d’une extension WordPress.

Une fois activé, rendez-vous sur la page Apparence  » Menus et passez votre souris sur l’élément de menu où vous souhaitez afficher une icône ou une image.

Menu Image button

Cliquez sur le bouton bleu de l’image du menu pour continuer.

Une fenêtre surgissante apparaît. Vous pouvez alors choisir une image ou une icône à afficher avec cet élément de menu.

Choose image or icon

Vous pouvez également choisir la position de l’image ou de l’icône par rapport à l’élément de menu. Par exemple, vous pouvez afficher l’Icône juste avant l’élément de menu comme dans notre exemple ci-dessous, ou même masquer le titre du menu pour afficher uniquement l’Icône.

N’oubliez pas de cliquer sur le bouton Enregistrer les modifications pour stocker vos réglages. Répétez le processus si vous avez besoin d’ajouter des icônes ou des images à d’autres éléments de menu.

Ensuite, vous pouvez visiter votre site pour voir l’image ou l’icône personnalisée dans des éléments de menu spécifiques.

Menu icons

Pour des instructions plus détaillées, consultez notre tutoriel sur l ‘ajout d’images dans les menus de WordPress.

3. Ajouter des liens de connexion / déconnexion à un menu spécifique de WordPress

Si vous utilisez un plugin d’adhésion WordPress ou si vous gérez une boutique en ligne, alors vous voudrez peut-être permettre aux utilisateurs/utilisatrices de se connecter facilement à leur compte.

Par défaut, WordPress ne propose pas de moyen simple d’afficher les liens de connexion et de déconnexion dans les menus de navigation.

Nous vous afficherons comment les ajouter à l’aide d’une extension ou d’un extrait de code.

1. Ajouter des liens de connexion / déconnexion aux menus à l’aide d’une extension

Cette méthode est plus simple et recommandée pour toutes les utilisatrices/utilisateurs.

Tout d’abord, vous devez installer et activer le plugin Login or Logout Menu Item. Ensuite, vous devez visiter la page Apparence  » Menu et cliquer sur l’onglet Connexion/Déconnexion pour le déplier.

Add login or logout link to specific WordPress menu

À partir de là, vous devez sélectionner l’article « Se connecter|se déconnecter » et cliquer sur le bouton « Ajouter au menu ».

N’oubliez pas de cliquer sur le bouton Enregistrer le menu pour stocker vos modifications. Vous pouvez maintenant visiter votre site pour voir votre lien de connexion/déconnexion personnalisé en action.

Login and Logout link preview

Le lien se modifiera dynamiquement en login ou en déconnecté en fonction de l’état de connexion de l’utilisateur.

Pour en savoir plus, consultez notre tutoriel sur l’ajout de liens de connexion et de déconnexion dans les menus de WordPress.

2. Ajouter des liens de connexion / déconnexion à l’aide d’un code personnalisé

Cette méthode nécessite d’ajouter du code à votre site WordPress. Si vous n’avez jamais fait cela auparavant, alors jetez un œil à notre guide sur la façon d’ajouter du code personnalisé dans WordPress.

Tout d’abord, vous devez trouver le nom que votre thème WordPress utilise pour l’emplacement spécifique du menu de navigation.

Le moyen le plus simple de le trouver est de visiter la page Apparence  » Menus et de passer votre souris sur la zone d’emplacement des menus.

Find menu location name

Faites un clic droit pour sélectionner l’outil Inspecter et vous verrez alors le nom de l’Emplacement dans le code source ci-dessous. Par exemple, notre thème de démonstration utilise primary, footer et top-bar-menu.

Note le nom affiché pour l’Emplacement cible où vous souhaitez afficher le lien de connexion / déconnexion.

Ensuite, vous devez ajouter le code suivant au fichier functions.php de votre thème ou à une extension spécifique à votre site.

add_filter( 'wp_nav_menu_items', 'add_loginout_link', 10, 2 );
function add_loginout_link( $items, $args ) {
    if (is_user_logged_in() && $args->theme_location == 'primary') {
        $items .= '<li><a href="'. wp_logout_url() .'">Log Out</a></li>';
    }
    elseif (!is_user_logged_in() && $args->theme_location == 'primary') {
        $items .= '<li><a href="'. site_url('wp-login.php') .'">Log In</a></li>';
    }
    return $items;
}

Ensuite, vous pouvez visiter votre site et vous verrez le lien de connexion ou de déconnexion dans votre menu de navigation.

Login link added via custom code

Ce lien dynamique basculera automatiquement vers la connexion ou la déconnexion en fonction de l’état de connexion de l’utilisateur/utilisatrice.

4. Ajouter un texte personnalisé au menu de navigation de WordPress

Et si vous vouliez simplement ajouter du texte et non un lien à votre menu de navigation ?

Il y a deux façons de procéder.

1. Ajouter un texte personnalisé à un menu spécifique (méthode simple)

Il vous suffit de vous rendre sur la page Apparence  » Menus et d’ajouter un lien personnalisé avec le signe # comme URL, et le texte que vous souhaitez afficher comme Texte du lien.

Add custom text with dummy link

Cliquez sur le bouton Ajouter au menu pour continuer.

WordPress ajoutera votre texte personnalisé en tant qu’élément de menu dans la colonne de gauche. Maintenant, cliquez pour le déplier et supprimez le signe #.

Remove link

N’oubliez pas de cliquer sur le bouton Enregistrer le menu et de prévisualiser votre site. Vous remarquerez que votre texte personnalisé apparaît dans le menu de navigation.

Il s’agit toujours d’un lien, mais le fait de cliquer dessus ne fait rien pour le compte de l’utilisateur/utilisatrice.

custom text in navigation menu

2. Ajouter un texte personnalisé à un menu de navigation à l’aide d’un code

Pour cette méthode, vous ajouterez un extrait de code à votre site. Tout d’abord, vous devrez trouver le nom de l’Emplacement de votre thème, comme décrit ci-dessus dans la section relative au lien de connexion/déconnexion.

Ensuite, vous devez ajouter le code suivant au fichier functions.php du thème ou à une extension spécifique au site.

add_filter( 'wp_nav_menu_items', 'your_custom_menu_item', 10, 2 );
function your_custom_menu_item ( $items, $args ) {
    if ( $args->theme_location == 'primary') {
        $items .= '<li><a title="">Custom Text</a></li>';
    }
    return $items;
}

Remplacez simplement la mention « Texte personnalisé » par votre propre texte.

Vous pouvez maintenant enregistrer vos modifications et visiter votre site pour voir votre texte personnalisé ajouté à la fin de votre menu de navigation.

Cette méthode de code peut s’avérer utile si vous souhaitez ajouter de manière programmatique des éléments dynamiques à un menu WordPress spécifique.

5. Ajouter la date du jour dans le menu de WordPress

Voulez-vous afficher la date du jour à l’intérieur d’un menu de navigation dans WordPress ? Cette astuce est très pratique si vous gérez un blog fréquemment mis à jour ou un site d’actualités.

Il suffit d’ajouter le code suivant au fichier functions.php de votre thème ou à une extension spécifique à votre site.

add_filter('wp_nav_menu_items','add_todaysdate_in_menu', 10, 2);
function add_todaysdate_in_menu( $items, $args ) {
    if( $args->theme_location == 'primary')  {
         
        $todaysdate = date('l jS F Y');
        $items .=  '<li><a>' . $todaysdate .  '</a></li>';
 
    }
    return $items;
}

N’oubliez pas de remplacer « primaire » par l’Emplacement de votre menu.

Vous pouvez maintenant visiter votre site pour voir la date actuelle dans votre menu WordPress.

Current date in WordPress menu

Vous pouvez également modifier le format de la date à votre guise. Consultez notre tutoriel sur la modification du format de la date et de l’heure dans WordPress.

6. Afficher le nom de l’utilisateur dans le menu WordPress

Vous souhaitez personnaliser un peu plus votre menu de navigation ? Vous pouvez accueillir les utilisateurs/utilisatrices connectés par leur nom dans votre menu de navigation.

Tout d’abord, vous devez ajouter le code suivant au fichier functions.php de votre thème ou à une extension spécifique à votre site.

add_filter( 'wp_nav_menu_objects', 'username_in_menu_items' );
function username_in_menu_items( $menu_items ) {
    foreach ( $menu_items as $menu_item ) {
        if ( strpos($menu_item->title, '#profile_name#') !== false) {
			 if ( is_user_logged_in() )     {
				$current_user = wp_get_current_user();
				 $user_public_name = $current_user->display_name;
                $menu_item->title =  str_replace("#profile_name#",  " Hey, ". $user_public_name, $menu_item->title . "!");
			 } else { 
			 $menu_item->title =  str_replace("#profile_name#",  " Welcome!", $menu_item->title . "!");
			 }
        }
    }

    return $menu_items;
} 

Ce code vérifie d’abord si vous avez ajouté un élément de menu avec #profile_name# comme texte de lien. Ensuite, il remplace cet article de menu par le nom de l’utilisateur connecté ou par un message d’accueil générique pour les utilisateurs/utilisatrices non connectés.

Ensuite, vous devez aller sur la page Apparence  » Menus et ajouter un nouveau lien personnalisé avec le #profile_name# comme texte du Link.

Add special tag to a menu item

N’oubliez pas de cliquer sur le bouton Enregistrer le menu pour stocker vos modifications. Après cela, vous pouvez visiter votre site pour voir le nom de l’utilisateur connecté dans le menu WordPress.

User name in WordPress navigation menu

7. Afficher dynamiquement des menus conditionnels dans WordPress

Jusqu’à présent, nous vous avons montré comment ajouter différents types d’articles personnalisés à des menus WordPress spécifiques. Cependant, vous aurez parfois besoin d’afficher dynamiquement différents éléments de menu aux utilisateurs/utilisatrices.

Par exemple, vous pouvez vouloir afficher un menu uniquement pour les utilisateurs/utilisatrices connectés. Vous pouvez également souhaiter que le menu soit modifié en fonction de la page vue par l’utilisateur/utilisatrice.

Cette méthode vous permet de créer plusieurs menus et de les afficher uniquement lorsque certaines conditions sont remplies.

Tout d’abord, vous devez installer et activer l’extension Conditional Menus. Pour plus de détails, consultez notre guide étape par étape sur l’installation d’une extension WordPress.

Une fois activé, vous devez visiter la page Apparence  » Menus. À partir de là, vous devez créer un nouveau menu que vous souhaitez afficher. Par exemple, dans cet exemple, nous avons créé un nouveau menu pour les utilisateurs/utilisatrices connectées uniquement.

Create new menu

Après avoir créé le menu, passez à l’onglet Gérer les Emplacements.

À partir de là, vous devez cliquer sur le lien Menus conditionnels situé à côté de l’emplacement du menu.

Add a conditional menu

Ensuite, vous devez sélectionner le menu que vous avez créé précédemment dans le menu déroulant.

Cliquez ensuite sur le bouton « + Conditions » pour continuer.

Select menu you want to show

Une fenêtre surgissante apparaît.

À partir de là, vous pouvez sélectionner les conditions qui doivent être remplies afin de commander ce menu.

Choose condtions

L’extension propose un grand nombre de conditions à choisir. Par exemple, vous pouvez afficher le menu en fonction d’une page spécifique, d’une catégorie, d’un type de publication, d’une taxonomie et plus encore.

Vous pouvez également afficher des menus différents en fonction du rôle des utilisateurs/utilisatrices et de leur état connecté. Par exemple, vous pouvez afficher un menu différent pour les membres existants sur un site d’adhésion.

Nous espérons que cet article vous a aidé à apprendre comment ajouter des articles personnalisés à des menus WordPress spécifiques. Vous pouvez également consulter notre guide sur la façon de choisir le meilleur logiciel de conception web, ou notre comparaison d’experts du meilleur logiciel de discussion en direct pour les petites entreprises.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Divulgation : Notre contenu est soutenu par les lecteurs. Cela signifie que si vous cliquez sur certains de nos liens, nous pouvons gagner une commission. Consultez comment WPBeginner est financé, pourquoi cela compte et comment vous pouvez nous soutenir. Voici notre processus éditorial.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

L'ultime WordPress Toolkit

Accédez GRATUITEMENT à notre boîte à outils - une collection de produits et de ressources liés à WordPress que tous les professionnels devraient avoir !

Reader Interactions

66 commentairesLaisser une réponse

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Jiří Vaněk says

    I like the implementation of the search, where instead of the classic empty field, there is a popup window. It looks like a nice solution. I was also interested in the date and personalization of the logged in user. Thanks for the inspiration.

  3. Denis says

    Hello,
    thanks a lot for that code. Is there a way to reorder the MENU? For example I want to have the Log in Log out button at first in the MENU. Just for an example.
    Cheers,
    Denis

    • WPBeginner Support says

      For the moment with this code, we do not have a simple method for reordering where the additions are placed compared to the menu items at the moment.

      Administrateur

    • Ben Short says

      I’m sure this is too late for Denis! But in case anyone else wants their menu item to come FIRST in the list of menu items, rather than LAST, here’s an example of code I’ve used for this purpose:

      add_filter( ‘wp_nav_menu_items’, ‘your_custom_menu_item’, 10, 2 );
      function your_custom_menu_item ( $items, $args ) {
      if (is_single() && $args->theme_location == ‘primary’) {
      $oldItems = $items;
      $items = ‘Show whatever’;
      $items .= $oldItems;
      }
      return $items;
      }

    • WPBeginner Support says

      Unless I hear otherwise, we do not have a recommended time based conditional display that we would recommend.

      Administrateur

  4. Saurabh Saneja says

    Hi,

    How can I add a search form at the beginning of the menu items list?

    Thanks,

    Saurabh

    PS: big fan of your tuts :)

  5. Igor says

    This is great. But would it be possible to add a menu within a menu?
    I want to append a language menu to my primary menu.
    I get the language menu on the page but not in the desired place.

    instead of

  6. Garratt says

    Does this code still work? Not seeing anything on my menu, even just using the basic function with text. Not using any special type of menu, just ‘X’ & child theme.

    • Garratt says

      never-mind, sorry just read this: « Obviously, you need to have custom menu enabled in your themes before you can proceed any further. »

      • Garratt says

        OK so I was still having the problem even though my menu was custom, and messed around until I removed the condition. (IF), once I did that it displayed on all pages including homepage.

        `add_filter( ‘wp_nav_menu_items’, ‘your_custom_menu_item’, 10, 2 );
        function your_custom_menu_item ( $items, $args ) {
        $items .= ‘Show whatever’;
        return $items;
        }

    • WPBeginner Support says

      10 specifies the order in which the functions associated with a particular action are executed. Lower numbers correspond with earlier execution, and functions with the same priority are executed in the order in which they were added to the action.

      2 is for the number of arguments the function accepts.

      Administrateur

  7. Ritchie Pettauer says

    This is an awesome, straight-to-the point tutorial. I want an item with today’s date (« headlines | DATE ») in one of my menus.

    I didn’t expect the first posting I found to solve my problem :) thx guys.

  8. Bill Gram-Reefer says

    works but (lol) for my situation I want to add « Search » to the primary header as if it were just another item that got checked in

    appearance/menus/add-to-menu

    Everything I’ve seen creates a whole new…what is it a div…(?)

    that adds a whole new row to the header instead of p[lacing the form in the same row as ABOUT, etc. items in the primary navigation edit window.

    AND take the css assigned to the navigation bar.

  9. Josalone Wordsworth says

    I really liked the post, so useful. However lets say I want to add a login and logout link in the footer with and if condition

  10. Hugo Callens says

    Related question: how to add a menu item based on a specific user role?
    Say I have a custom user role called « Student » and I would like to add an item to the menu only when the user has the role of « Student »?

  11. Gerrit says

    Thank you for the How To!

    To be honest I don’t understand how you call the function.

    Especially I am missing a mention what arguments you call the functions with i.e. what wp variables to hand over as $items and $args.

    Could you please detail for a wp-beginner?

    Thank you,

    Gerrit

  12. Pierre Laflamme says

    In your examples, you add items to the primary menu (theme_location == ‘primary’).

    How would I add an item in a specific menu in widget area? Where do I get the theme_location?

  13. razvan says

    Hi! I used your tutorial to put a picture as a logo overlapping the menu bar. All is fine but this specific menu has a hover option that makes the color white… So when i hover the mouse on the logo, it also hovers the link which kind of ruins the aspect of the page.

    This is my code:

    if( $args->theme_location == ‘primary’ )
    return « « .$items;

    How can I hide the a href on the page and just display the image with link?

    Thanks in advance

  14. Kathy says

    Hi, I think your code is close to what I’m looking for, but I’m trying to figure out how i can customize it to do what I’m trying to do!

    What I am trying to do is create a menu item with dropdown list of authors? any idea how i can accomplish that?

    Thanks so much!

  15. Brad says

    Thanks this was very helpfull,

    However, out of curiosity, I can’t find this valuable filter hook: « ‘wp_nav_menu_items » , I mean where in WP core files is this being called ??

    Thanks much !!

      • Murugu says

        I added the following to my theme’s functions.php but the search box doesn’t show up like I would expect. Any suggestions?

        add_filter(‘wp_nav_menu_items’,’add_search_box_to_menu’, 10, 2);
        function add_search_box_to_menu( $items, $args ) {
        if( $args->theme_location == ‘header_extras_inner’ )
        return $items. » »;

        return $items;
        }

  16. Elliott Wall says

    Sorry to be coming into this discussion so late

    I’ve tried the search form part and it works great— thank you! I’m having problems styling it though, for some reason. No matter what I do the placeholder text in the field is gray. I’ve looked at the cascading of the styles and messed with so many things— I can change the background color for example, but no luck in making the text black, so the design continuity of the menu is somewhat compromised. My site is http://elliottwall.com if you care to have a look. Cheers

  17. SAcha says

    Hi,

    very interesting!
    I added a custom link, but is it possible to add it in a certain position inside the menu? Like « after the first menu item ».

    Thanks

Laisser une réponse

Merci d'avoir choisi de laisser un commentaire. Veuillez garder à l'esprit que tous les commentaires sont modérés selon 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.