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.
30 Commentaires
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.
d’accord mais dans quel fichier ?
header.php ou functions.php ?
Comme pour tous les hooks et les filtres, ce code est a placé dans le fichier functions.php :)
du thème ou de worpdress ??
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
moi je rajoutais le lien grâce à “Lien Personnalisé” dans “Apparence” puis” menu”
C’est ce que je faisais aussi avant d’avoir trouvé l’astuce :)
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
C’est justement pour éviter de faire cette manipulation et d’automatiser l’ajout du lien vers l’accueil :)
Ah bon, OK, merci
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.
Comment on fait pour un thème enfant ?
Merci
@Britain : Il faut ajouter le code dans le fichier functions.php du thème enfant.
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 ?
@Britain : Oui c’est cela.
Et pour répondre à la question : il est possible de mettre ce que l’on veut ;)
d’accord avec img src ou un autre code ?
Merci
c’est bon, merci j’ai réussi avec img src=
Ce que tu veux, tu es libre de choisir la solution que tu penses être la mieux.
simple curiosité, tu avais mieux que img src ?
Background image en CSS ;)
je connais, j’y ai pensé mais je ne vois pas de balise div, avec home_link ??
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.
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
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
Bonjour, j’ai précisément reproduit la manipulation mais rien ne change… Je précise que je suis novice.
@Kodriego: Vous avez bien ajouté ceci dans le fichier functions.php de votre thème et non pas ailleurs ?
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
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