web-dev-qa-db-ja.com

子ページに兄弟があるかどうかを確認してください

子ページに兄弟ページがあるかどうかを確認する方法はありますか。つまり、それらが同じ親ページに属しているかどうかです。そうであれば、各子ページ内の兄弟ページのリストを表示します。

例:

Science books
  Book 1 
  Book 2
  Book 3

私が中にいるとき:

Book 1

リスト形式で表示したい:

Book 2
Book 3

出来ますか?

1

もちろん可能です。 docsでwp_list_pages を見てください。

だから、このようなものはトリックを行います:

<?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
    ) );
?>

そしてもしあなたがカスタムHTMLを使いたいのなら、このようなものが助けになるでしょう:

<?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