Fairweb

Développement WordPress, WordPress Mu, BuddyPress

WordPress : afficher des sous-pages et leur contenu

| 2 Commentaires

logowp.jpgDans un thème WordPress, il se peut que vous vouliez afficher les sous-pages d’une page mère. Ca, vous savez certainement le faire avec wp_list_pages().

Mais cette fonction vous permet seulement d’afficher la liste avec un lien vers les pages. Qu’en est-il si vous voulez afficher le contenu de ces sous-pages ?

Avec la fonction get_posts()

Cette fontion prend un tableau pour argument. Commencez donc par définir ce tableau :

$parentid = $post->ID;
// on récupère l'id de la page courante soit la page parente
$args = array(
    'post_type' => 'page',
    'numberposts' => -1, // -1 signifie toutes les sous-pages
    'post_parent' => $parentid // numéro de la page parente
    );

Ensuite, affectez à une variable le résultat de la fonction get_posts($args) qui retourne elle même un tableau.

$posts = get_posts($args);

Parcourez le tableau avec foreach. La fonction setup_postdata($post); va vous permettre d’utiliser les template tags que vous utilisez habituellement dans la boucle (the loop).

<?php foreach ($posts as $post) :
    setup_postdata($post); ?>
    <div class="entry">
    <h2><?php  the_title(); ?></h2>
    <?php the_content() ; ?>
    </div>
    <?php endforeach; ?>

Avec la fonction get_pages()

$parentid = $post->ID;
$pages = get_pages('child_of='.$parentid);
foreach($pages as $page) :
       setup_postdata($page); ?>
        <h2><?php the_title();?></h2>
        <div class="entry"><?php echo the_content(); ?></div>
 <?php endforeach; ?>

Share

Auteur : Fairweb

Développement php/mysql, conception de sites internet

2 Commentaires

  1. Bonjour

    Astuce sympathique et très utile, par contre je rencontre un soucis avec le titre car à chaque sous-page il m’affiche systématiquement le titre de la page principale ?…

    Comment faire ?

  2. Thanks for sharing this! Looks great:)

Laisser un commentaire

Champs Requis *.

*