サポート » 使い方全般 » 固定ページ内にカスタム投稿をターム別に表示したい

  • 解決済 sasasa24

    (@sasasa24)


    カスタム投稿aaa、タクソノミーbbb、それに属するタームがxxx,yyy,zzzとあります。
    固定ページ、page-test.phpにて下記のように同じコードのターム部分をxxx,yyy,zzzと書き換えて3回記述しました。

    <?php $args = array(
       'numberposts' => -1,
       'post_type' => 'aaa',
       'taxonomy' => 'bbb',
       'term' => 'xxx',
       'relation' => 'OR'
    );
       $customPosts = get_posts($args);
       if($customPosts) : foreach($customPosts as $post) : setup_postdata( $post );
     ?>
    <!--ここに出力内容-->
    <?php endforeach; ?>
    <?php endif; wp_reset_postdata(); ?>
    
    ~ 中 略 ~
    
    <?php $args = array(
       'numberposts' => -1,
       'post_type' => 'aaa',
       'taxonomy' => 'bbb',
       'term' => 'yyy',
       'relation' => 'OR'
    );
       $customPosts = get_posts($args);
       if($customPosts) : foreach($customPosts as $post) : setup_postdata( $post );
     ?>
    <!--ここに出力内容-->
    <?php endforeach; ?>
    <?php endif; wp_reset_postdata(); ?>
    
    ~ 中 略 ~
    
    <?php $args = array(
       'numberposts' => -1,
       'post_type' => 'aaa',
       'taxonomy' => 'bbb',
       'term' => 'zzz',
       'relation' => 'OR'
    );
       $customPosts = get_posts($args);
       if($customPosts) : foreach($customPosts as $post) : setup_postdata( $post );
     ?>
    <!--ここに出力内容-->
    <?php endforeach; ?>
    <?php endif; wp_reset_postdata(); ?>

    すると、なぜか一番上のxxxの投稿しか表示されません。
    何か間違っているのか、他に書き方があるのか、どなたかアドバイスいただけないでしょうか。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • get_posts のタクソノミーに関するパラメータの指定方法は WP_Query と同じです。

    WP_Query の「タクソノミーのパラメータ」の説明・用例を読みましょう!

    $args = array(
       'nopaging' => true,	// 'numberposts' => -1,
       'post_type' => 'aaa',
       'tax_query' => array(	// タクソノミーのパラメータはこの形式
    	   array(	// 配列の中に配列で書く
    		   'taxonomy' => 'bbb',
    		   'field' => 'slug',	// 省略するとタームID
    		   'terms' => 'yyy',	// タームのスラッグ
    	   )
       ),
    );
    $customPosts = get_posts( $args );

    トピック投稿者 sasasa24

    (@sasasa24)

    gblsm様

    ありがとうございます。
    そのページを読んでいたにもかかわらず…申し訳ございません。
    教えて頂いたように記述してみたのですが、やはり一番上のものしか表示されません。
    同一ページ内に複数書くのが悪いのでしょうか・・・

    念のため確認なのですが、ターム yyy や zzz をつけたカスタム投稿 aaa を個別投稿として表示できていますか?

    それから差し支えなければコードを省略や伏字にしないで見ることはできませんか?
    (見つけにくいコーディングミスがあるのかも)
    コードを pastebin.com へ貼り付けて共有リンクだけをここに示していただければと思います。

    トピック投稿者 sasasa24

    (@sasasa24)

    gblsm様

    ご回答ありがとうございます。

    念のため確認なのですが、ターム yyy や zzz をつけたカスタム投稿 aaa を個別投稿として表示できていますか?

    はい、表示はできています。。

    こちらコードです。御願いいたします。
    http://pastebin.com/4ruuSrLe

    一番外側(最初)のループ要らないんじゃないですかね。

    if(have_posts()):
        while(have_posts()):
            the_post();
    トピック投稿者 sasasa24

    (@sasasa24)

    ikaring様
    ありがとうございます。
    外側のループは外しました!

    トピック投稿者 sasasa24

    (@sasasa24)

    ikaring様
    gblsm様

    ループ外したところ、解決しました!
    本当に助かりました。。ありがとうございました。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「固定ページ内にカスタム投稿をターム別に表示したい」には新たに返信することはできません。