web-dev-qa-db-fra.com

Vérifier si la page enfant a des frères et soeurs

Existe-t-il un moyen de vérifier si la page enfant a des pages sœurs. C'est-à-dire s'ils appartiennent à la même page parente. Si tel est le cas, affichez la liste des pages de frères et soeurs dans chaque page enfant.

Exemple:

Science books
  Book 1 
  Book 2
  Book 3

Quand je suis à l'intérieur de:

Book 1

Je veux afficher sous forme de liste:

Book 2
Book 3

C'est possible?

1

Bien sur, c'est possible. Il suffit de regarder docs pour wp_list_pages

Donc, quelque chose comme ça va faire l'affaire:

<?php
    global $post; // assuming there is global $post already set in your context
    wp_list_pages( array(
        'exclude' => $post->ID,  // exclude current post
        'parent' => $post->post_parent  // get only children of parent of current post
    ) );
?>

Et si vous voulez utiliser du HTML personnalisé, quelque chose comme ceci devrait vous aider:

<?php
    global $post; // assuming there is global $post already set in your context
    if ( $post->post_parent ) :  // if it's a child
        $siblings = new WP_Query( array(
            'post_type' => 'page',
            'post_parent' => $post->post_parent,
            'post__not_in' => array( $post->ID )
        ) );
        if ( $siblings->have_posts() ) :
?>
    <ul>
        <?php while ( $siblings->have_posts() ) : $siblings->the_post(); ?>
        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
        <?php endwhile; wp_reset_postdata(); ?>
    </ul>
<?php 
        endif;
    endif;
?>
0