WordPress, Affichez les sous pages d’une page

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 !

WordPress, affichage sous menu liés à un menu

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

5 Comments

  1. Lancelot 27 janvier 2010
  2. christian 25 août 2010
  3. Cédric 2 mai 2011
  4. frederica 9 août 2011
  5. Frédéric Valenza 15 avril 2013

Leave a Reply