Blog

Multiples menus conditionnels dans WordPress

Écrit le 21 08 2012 par Kévin MET _

Et là vous vous dîtes : « Mais qu’est ce que c’est que ce titre qui veut rien dire ? ». Et je vous réponds : « Je fais ce que je veux avec mes titres d’articles ! ». Et sinon plus sérieusement (même si c’était déjà pas drôle) je vais vous expliquer comment faire pour utiliser plusieurs menus dans votre wordpress et comment les utiliser de manière conditionnelle. C’est à dire comment afficher un menu précis dans une catégorie et un autre dans une autre catégorie ou en fonction d’autres critères. Ce tutoriel fait suite au premier qui expliquait les bases du menu wordpress. Si vous ne connaissez pas le fonctionnement basique des menus, je vous conseille de le lire en premier. Ceci dit, on va pouvoir commencer.

Comme la logique le veut, pour avoir plusieurs menus, il faut commencer par en créer plusieurs. Vous allez donc vous rendre dans la rubrique menu de votre WordPress qui se trouve dans le menu Apparence :

menu WordPress

Ensuite vous allez créer un nouveau menu en cliquant sur le signe + qui se situe sur l’onglet à coté de votre menu déjà existant. Dans l’exemple suivant, il s’agit du signe + à coté de l’onglet Navigation car j’ai déjà un menu qui se nomme « Navigation » :

menu WordPress

Ensuite vous allez donner un nom à ce menu. Faite attention au nom que vous lui donnez car il servira plus tard. Dans l’exemple suivant le nom du menu est : « Menu-test » :

menu WordPress

Puis vous créer votre menu et vous mettez ce dont vous avez besoin dedans. C’est là que ça devient intéressant, vous allez simplement mettre une ligne de code qui va pouvoir appeler l’un ou l’autre de vos menus. Dans cette exemple, je fais appel au menu que je viens de créer :


<?php
wp_nav_menu(array('menu' => 'Menu-test'));
?>

C’est donc très simple d’utiliser plusieurs menus dans WordPress mais en l’état ça n’est pas très utile. Par contre en combinant ça avec les marqueurs conditionnels ça devient beaucoup plus utiles. Prenons un exemple concret. Vous avez un site sur lequel vous avez besoin d’afficher des menus dans le header qui seront différents en fonction de la catégorie. Vous pouvez écrire ce genre de chose dans le header.php de votre thème :

<php
if (in_category('truc')) {
	wp_nav_menu(array('menu' => 'Menu-truc'));
} else {
	wp_nav_menu(array('menu' => 'Menu-header'));
}
?>

Dans cette exemple, le menu du header qui sera chargé par défaut sera le Menu-header et le menu qui sera chargé quand le visiteur sera dans la catégorie « truc » sera « Menu-truc ».

Voilà, dans la suite on va faire du css sur ce menu pour qu’il soit déroulant, uniquement en utilsant du CSS et aucun java-script, un peu comme sur ce blog (depuis la publication de ce billet, le blog n'utilise plus ce style de menu).

♥ Partage sur tes réseaux sociaux ♥
Kévin MET
Kévin MET

Auteur de ce blog et gérant de la société MNT-TECH, je publie sur ce blog lorsque le temps me le permet et lorsqu'un sujet qui me parait intéressant n'a pas encore été abordé en français. Toutes les informations techniques présentes sur cette page peuvent être réutilisées moyennant le fait de citer la source.