Lister les pages enfants

Lister les pages enfants

 

Voici un bout de code permettant sur son site wordpress d’afficher les pages enfants d’une page principale.Cet exemple et particulier et spécifique à un projet de site privé sur lequel j’ai du travailler : sur ce site privé, un mot de passe permet l’accès à un groupe de page (page parente et ses pages enfants) .

Mon client veut constamment le meme type de menu (memes intitulés) sur chaque groupe de page, donc l’utilisateur pense qu’il s’agit d’un seul et meme menu, or il s’agit plutot d’une fonction affichant la page parente et ses pages enfants, quelque soit le groupe de page ou l’on se trouve.

<nav class="clearfix" role="navigation">   
             
       
         <ul>
            <li><?php $post->post_parent;$parent_link = get_permalink($post->post_parent); 
                echo '<a href="' . $parent_link. '">Consultez les photos de classe</a>';?>
            </li>   
            <li>
             <?php
            global $post; 
            if ( is_page() && $post->post_parent )
            $enfants = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->post_parent . '&echo=0' );
            else
            $enfants = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->ID . '&echo=0' );
            if ( $enfants ) {
            echo '<ul class="secondary">';
            echo $enfants;
            echo '</ul>';}?>
            </li>
        </ul>

        
        </nav>

Ici je crée un menu, avec toujours en dur la page parente intitulée ‘consultez vos photos de classe’.Dans le backoffice, quelque soit le titre de la page parente, en front ca sera toujours ‘consultez vos photos de classe’.

Ensuite avec la condition

if ( is_page() && $post->post_parent )

on vérifie qu’on est bien sur une page parente, puis avec la fonction wp_list_page et ses arguments, on affiche les pages enfants:

 $enfants = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->post_parent . '&echo=0' );
          

Ensuite à soi de styliser tout ca en css pour donner une apparence de menu, plutot qu’une liste

meu page

En l’etat, par rapport à ce projet spécifique, le client veut également que les titres des pages enfants soient toujours les memes, qu’il n’aie pas à les taper dans le backoffice.

Pour cela il existe un filtre pour modifier le titre des articles ou pages.Reportez vous à cet article.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.