固定ページで子ページから親ページを参照して子ページ一覧を取得する【WordPress】

メインループ・サブループ

親ページを参照して子ページ一覧を取得する方法を紹介します。

次のような、親子関係を持っている、固定ページがあります。

親ページに属している【子ページ1】から【子ページ5】を取得する為のコードは次になります。

<?php
    //ループ条件セット
    $news_query = new WP_Query(
    array(
        //親ページの投稿ID
        'post_parent' => 45,
        //固定ページを指定
        'post_type'   => 'page',
    )
    );
?>
<?php if ( $news_query->have_posts() ) : ?>
    <ul>
        <?php while ( $news_query->have_posts() ) : $news_query->the_post(); ?>
            <li><?php the_title(); ?></li>
        <?php endwhile; ?>
    </ul>
<?php endif; ?>
<?php wp_reset_postdata(); ?>

次のパラメータを渡すことで、親ページを参照してループさせています。

  • post_parent : 「親ページの投稿IDを指定」
  • post_type : 「固定ページを指定」

表示しているページを除外したい

表示しているページを除外したい場合は次のコードを入力します。

<?php
    //ループ条件セット
    $news_query = new WP_Query(
    array(
        //親ページの投稿ID
        'post_parent' => 45,
        //固定ページを指定
        'post_type'   => 'page',
        //現在のページを除外
        'post__not_in' => array( get_the_ID() ),
    )
    );
?>
<?php if ( $news_query->have_posts() ) : ?>
    <ul>
        <?php while ( $news_query->have_posts() ) : $news_query->the_post(); ?>
            <li><?php the_title(); ?></li>
        <?php endwhile; ?>
    </ul>
<?php endif; ?>
<?php wp_reset_postdata(); ?>

次のパラメータを追加することで、表示しているページを除外しています。

  • post__not_in : 「投稿IDを指定すると、その投稿は取得されない」
Akira

Akira

未経験から制作会社に入社し3年ほど技術周りをやってます。最近はJamstackに興味があってこのサイトもShifterというサービスを使用してJamstack化しています。

特集記事

TOP