サポート » その他 » 記事一覧のカスタム

  • バージョンは4.9.9です。
    投稿一覧をカテゴリー別に順番を決めて、1ページに表示させる最大投稿記事数を指定して表示させたいのですが、うまくいきません。
    例えばカテゴリーA、B、Cがあり、表示順をC、A、Bに設定します。
    現在、Cの投稿が8件、Aの投稿が10件、Bの投稿が25件あるとします。
    1ページに表示させたい投稿は最大20件にしたいと考えています。
    イメージとしては以下のようにしたいと思っています。写真入りの記事なので、横に5つ並ぶようにしています。

    CCCCC
    CCCAA
    AAAAA
    AAABB
    改ページ→
    BBBBB
    BBBBB
    BBBBB
    BBBBB
    改ページ→
    BBB

    しかし、下記のようなコードを書くと、1ページに20件ではなく、各カテゴリーにつき20件表示されてしまいます。

    CCCCC
    CCCAA
    AAAAA
    AAABB
    BBBBB
    BBBBB
    BBBBB
    BBB
    改ページ→
    BBBBB

    上記のように表示される。

    <?php $paged = get_query_var('paged'); ?>
    
    <?php
    $categorys = array(3,1,2);
    for ($i=0; $i<count($categorys); $i++) :
    ?>
    
    <?php query_posts( array( 
    'post_type' => 'post',
    'posts_per_page' => 20,
    'cat' => $categorys[$i],
    'paged' => $paged
    )); ?>
    
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

    どなたか、良い方法をご存知でしたらご教示をよろしくお願いいたします。

    • このトピックは matankiが4 週間、 1 日前に変更しました。
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • CG

    (@du-bist-der-lenz)

    1ページに20件表示するのですよね。取得したものを、カテゴリ別に並べ替えるだけではないですか。

    早速の返信ありがとうございます。

    カテゴリ別に並べかえて、カテゴリA、B、Cがそれぞれいくつ投稿されていてもAの最後の投稿の次にBの投稿が送り込まれ、Bの最後の投稿の次にCの投稿が送り込まれるようにはなりました。
    しかし、全ての投稿が1ページ目に表示されてしまいます。

    showposts=20&cat= や posts_per_page => 20などで件数指定すると、

    例えばAの投稿が10件あって、Bの投稿が25件、Cの投稿が30件あるような場合。
    Aの投稿10件の次にBの投稿が10件表示され、残りの15件は次のページに表示されるようにしたいのですが、そうならないのです。

    Aの投稿10件の次にBの投稿が20件表示され、そのあとにCの投稿が20件まで1ページ目に表示されてしまい、Bの投稿が5件分表示されないまま、次のページでCの残りの10件が表示されるようになります。

    何か具体的な方法はありますでしょうか。
    よろしくお願いいたします。

    CG

    (@du-bist-der-lenz)

    取得する段階で、投稿日あたりが影響してませんか

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • このトピックに返信するにはログインが必要です。