Tout savoir sur WordPress
Tutoriel WordPress

Ajouter automatiquement un lien “Accueil” au menu personnalisé

Depuis la version 3.0, on peut créer son menu personnalisé. Voyons voir comment insérer automatiquement un lien vers notre page “Accueil” sans passer par un lien personnalisé.

Depuis la version 3.0 de WordPress, il est possible de créer son menu personnalisé à partir de l’espace d’administration.

Quand il s’agit d’ajouter un lien vers notre page d’accueil, la solution du lien personnalisé est la seule qui s’offre à nous.

Nous allons voir comment ajouter automatiquement un lien vers notre page d’accueil que l’on soit sur notre serveur local, pre-production ou production.

Pour rappel, les deux fonctions nécessaires à l’implantation d’un menu personnalisé sont register_nav_menu() et wp_nav_menu().

La fonction register_nav_menu sert à déclarer un menu et rend l’espace d’administration des “Menu” disponible, tandis que la fonction wp_nav_menu() permet d’afficher un menu créé à partir de l’administration.

Pour ajouter automatiquement un lien vers notre page d’accueil, il faut jouer avec le filtre wp_nav_menu_items et insérer le code ci-dessous dans le fichier functions.php présent à la racine de notre thème :

[pastacode lang=”php” message=”” highlight=”” provider=”manual”]


add_filter('wp_nav_menu_items', 'gkp_add_index_link', 10, 2);
function gkp_add_index_link($items, $args) {

    if( $args->theme_location == 'nav' )
        $homeLink .= '<li id="home_link"><a href="' . home_url() . '">Accueil</a></li>';

    return $homeLink . $items;
}

[/pastacode]

De cette manière, on va greffer notre lien à la liste existante du menu.

Cet article a été mis à jour il y a 4958 jours - Il n'est peut être plus à jour !

Article écrit par Jonathan B.

Jonathan est le co-fondateur de WP Media, startup connue pour être l’auteur de WP Rocket et Imagify. Il est aussi co-organisateur du WordCamp Lyon et Paris.

30 Commentaires

  1. Merci j’avais justement besoin de ça..!
    Sinon où peut-on changer et réduire la patille de la police du menus justement… C’est la seule que je n’arrive pas à changer..!

    Du coup je vais aller lire tes autres articles ! héhé !

    • Qu’est ce que tu veux dire par “patille” ?

      Tu voulais dire la “pastille” ? Dans ce cas, à quoi fais-tu référencement.
      ou la “taille” ? Dans ce cas, un peu de CSS et le tour est jouer.

    • Comme pour tous les hooks et les filtres, ce code est a placé dans le fichier functions.php :)

    • Toutes les modifications se passent dans TON thème. Il ne faut JAMAIS touché au fichier de WordPress.

      Tu trouvera le fichier dans wp-content => themes => ton-theme => functions.php

  2. moi je rajoutais le lien grâce à “Lien Personnalisé” dans “Apparence” puis” menu”

  3. Merci pour vos article judicieux, mais cette fois-ci je suis perplexe…

    Que voulez-vous faire, ajouter un lien ‘accueil’ ?

     

    Je l’ai fait tout simplement en allant dans ‘menu’ -> liens personnalisés, et en mettant ‘/’ comme adresse …

    Ce qui n’empêche pas de devoir autoriser la fonction avec register_nav_menu

     

  4. Très bon!
    Mais je me suis rendu compte d’une chose c’est que les pages cibles des liens de ce menu ne sont indexées ni par le sitemap generator ni par google bot :/ C’est dommage pour le positionnement… Probablement parce que le menu est en java. Une idée pour palier le problème?

    • Si vos pages existent, il n’y aucune raison sitemap generator n’introduise pas les liens de vos pages dans le sitemap.

      De même pour google, si les liens de vos pages sont bien présents dans le code source, il y a aucune raison pour qu’elles ne soient pas indéxés.

  5. merci,theme location = nav c’est un exemple, tous les menus des thèmes ne s’appelle pas nav, parfois navigation donc on modifie,c’est bien ça
    Est ce possible d’avoir un icône et non Accueil ?

  6. @Britain : Oui c’est cela.

    Et pour répondre à la question : il est possible de mettre ce que l’on veut ;)

  7. bonjour, félicitation pour votre site et tous vos conseils, mais je me permet de vous interpeler car j’essaie de faire un petit blog avec wordpress.com en ligne pour me familiariser, mais je rame à mort et quand on est novice en la matière c’est très compliqué, j’ai réussi a créer un menu avec une page d’accueil, je travaille avec Window live writer quand j’envoie ma page sur le blog c’est ok, ensuite que faire de cette page, je voudrais bien la lier au menu ou l’archiver et je suis bloqué pour archiver mes pages, faire des liens internes, en faite l’organisation du site.
    ceci est mon adresse http://rugbyflash.wordpress.com/
    en espérant un petit coup de main de votre part, je vous souhaite une bonne journée.

  8. wordpress.com c’est un site qui propose de faire un blog sous WordPress mais avec leurs options, vous ne pouvez pas modifier un thème, et..
    Je déconseille Window live writer , là on est dans le domaine de la publication à distance, donc obliger de cocher dans “Réglages” puis “Ecriture” toutes les options de la partie “Publication à distance”, donc les protocoles XML-RPC, pas si sur en question de sécurité, une petit porte pour les hackers, pourquoi ne pas écrire vos articles directement dans l’éditeur visuel/html de WordPress.
    Les archives c’est les articles lier aux catégories, pas d’archives pour les pages.
    Les liens externes c’est dnas “Apparence” puis “Menu” cadre “Lien Personnalisé”
    Sinon le mieux prendre un hébergeur gratuit et installer vraiment WordPress

  9. Bonjour,
    je cherchais sur ton site mais pas trouvé j’ai une page privée, j’ai mis le lien dans le menu mais j’aimerai que le lien soit visible uniquement aux membres donc invisible aux visiteurs, merci

  10. Bonjour, j’ai précisément reproduit la manipulation mais rien ne change… Je précise que je suis novice.

  11. @Kodriego: Vous avez bien ajouté ceci dans le fichier functions.php de votre thème et non pas ailleurs ?

  12. Bonjour, merci cela fonctionne parfaitement…par contre j’aimerais ajouter un lien à la fin de mon menu et non au début, j’ai essayé plusieurs manips sans résultat…comment peut-t’on y remédier?

    merci

  13. Bonjour, j’ai un problème similaire. J’utilise le thème Project Ar2 qui ne dispose pas de bouton “accueil” dans la barre de menu. Que faire. Suis débutant. merci