WordPress est mon moteur de blog/CMS chouchou et la majorité de mes sites personnels et professionnels sont propulsés par ce script. Dernièrement, un client souhaitait un affichage couramment rencontré sur les sites « vitrines » : en cliquant sur un menu « parent », il faut afficher tous les sous menus liés. Et si aucun sous menu n’existe, on affiche…. rien !
Toutefois, ne souhaitant pas ajouter un énième plugin, j’ai préféré gérer « à la mano » cette option. Alors, après un petit tour dans le Codex WordPress, voici une petite solution qui pourra peut être vous rendre des services.
Tout d’abord, dans le « header.php », vous afficherez les menus :
<?php wp_list_pages('depth=1&sort_column=menu_order&title_li='); ?>
Ici, grâce à « depth=1 », on n’affiche que le « menu parent ». Les « sous menus » ne sont pas affichés.
Et dans le fichier « sidebar.php », il suffit d’ajoutez le code suivant :
<ul> <?php if($post->post_parent) $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0"); else $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0"); if ($children) { ?> <ul> <li><h2>Sous Menus</h2> </li> <?php echo $children; ?> </ul> <?php } ?> </ul>
Rien de bien méchant en fait… et WordPress se transforme en un véritable CMS…
Site Internet : Free Tools
Licence : Gratuit