• 解決済 momonuts

    (@momonuts)


    CPT UIで作ったカテゴリー(post type)に子カテゴリーを作り、その各子カテゴリーの記事一覧を1ページ内で表示させたいと思っています。

    ・子カテゴリー1
     記事一覧

    ・子カテゴリー2
     記事一覧

    ・子カテゴリー3
     記事一覧

    という感じです。

    現在

    <?php
    $args = array(
    'post_type' => 'カテゴリー名',
    'taxonomy' => 'タクソノミー名',
    'slug' => 'スラッグ名',
    'posts_per_page' => 5,
    'paged' => get_query_var( 'paged' )
    );
    $my_posts = get_posts( $args );
    foreach ( $my_posts as $post ): setup_postdata( $post ); ?>
    <?php if(get_field("lookimgs")): ?>
    <li><?php the_title(); ?></li>
    <?php endif; ?>
    <?php endforeach; ?>
    <?php wp_reset_postdata(); ?>

    としています。
    表示されるにはされるのですが、全てのセクションで全ての記事一覧(子カテゴリー1から3までの全ての記事)が表示されてしまいます。

    ループがリセットされていないために起こっている現象なのかとまでは分かりますが、どのようにリセットできるのか分からず質問いたしました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック投稿者 momonuts

    (@momonuts)

    上記コードに一部ミスがありました。

    正しくは、現在以下のようにしています。
    こう書くとループが切れません。

    <?php
    $args = array(
    'post_type' => 'カテゴリー名',
    'taxonomy' => 'タクソノミー名',
    'slug' => 'スラッグ名',
    'posts_per_page' => 5,
    'paged' => get_query_var( 'paged' )
    );
    $my_posts = get_posts( $args );
    foreach ( $my_posts as $post ): setup_postdata( $post ); ?>
    <li><?php the_title(); ?></li>
    <?php endforeach; ?>
    <?php wp_reset_postdata(); ?>

    get_posts のパラメーター指定方法を再確認してください。下記リンク先に説明と用例があります。(get_posts のパラメーターは大部分が WP_Query と共通です。)
    関数リファレンス/WP Query – WordPress Codex 日本語版

    post_type は投稿タイプなので、これにカテゴリー名を指定するのは変ですね。
    taxonomy と slug は tax_query というパラメーターに配列として与えます(用例を見てください)。
    とりあえず posts_per_page と paged は大丈夫だと思います。

    トピック投稿者 momonuts

    (@momonuts)

    gblsmさま

    ありがとうございます!
    tax_queryを使ったら正常に動作するようになりました!!

    勉強になりました!!

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「1ページ内に複数のスラッグの記事一覧を掲載したい」には新たに返信することはできません。