サポート » 使い方全般 » query_postsの条件分岐

  • 初めて投稿させて頂きます。

    query_postsを使って、記事一覧でカテゴリー別の表示を作りたいのです。
    イメージ的には以下の感じです。

    カテゴリーA、カテゴリーB、カテゴリーCとある場合
    <div id=”A”>カテゴリーAの内容</div>
    <div id=”B”>カテゴリーBの内容</div>
    <div id=”C”>カテゴリーCの内容</div>

    感じです。
    記事の表示は投稿された順番で表示したいです。

    <?php query_posts(‘category_name=A,B,C&showposts=10’);?>
    <?php if(have_posts()) : while(have_posts()) : the_post(); ?>
    <div id=”article”>
    <p id=”articleDate”><small><?php the_time(‘Y.n.j’); ?></small></p>
    <h3><?php the_title(); ?></h3>
    </div>
    <?php endwhile; else: ?>
    <?php _e(‘新着情報がありません。’); ?>
    <?php endif; ?>

    ここまではわかるのですが、ここからどう条件分岐をしたらいいのかがわかりません。
    どうか、ご教授して頂けないでしょうか。

    よろしくお願い致します。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • <?php query_posts('category_name=A,B,C&showposts=10');?>
    

    これで取ってくると全部ごっちゃに新着順になっちゃうので、その後の処理が面倒です。簡単にやりたいのであれば、

    <?php query_posts('category_name=A&showposts=10');?>
    

    とひとつづつ取ってきて、都度、中身を表示すればよろしいかと。つまり

    <?php query_posts('category_name=A&showposts=10');?>
    ...カテゴリAの中身表示...
    <?php query_posts('category_name=B&showposts=10');?>
    ...カテゴリBの中身表示...
    <?php query_posts('category_name=C&showposts=10');?>
    ...カテゴリCの中身表示...
    

    コード的に美しくはないですが、問題は解決出来るでしょう。

    トピック投稿者 k_michi

    (@k_michi)

    >V.J.Catkick
    ありがとうございます。

    <?php query_posts('category_name=A&showposts=10');?>
    ...カテゴリAの中身表示...
    <?php query_posts('category_name=B&showposts=10');?>
    ...カテゴリBの中身表示...
    <?php query_posts('category_name=C&showposts=10');?>
    ...カテゴリCの中身表示...

    だと、合計30件のPostを表示してしまうこととカテゴリー関係なく新着順に表示したいのでこのやり方だと無理でした。

    んっと、質問の内容がよくわからないです。カテゴリ別に…が優先なのか、10件なら10件表示が優先なのか?というところです。最初の話では、

    カテゴリA
    カテゴリB
    カテゴリC

    と並べるということだったので、A、B、Cそれぞれに取ってくればいいとアドバイスしました。が、次の解答で「カテゴリに関係なく新着順に表示」となっているので、最初の話と矛盾しますが、どうでしょう?

    カテゴリA(例えば5件)
    カテゴリB(例えば1件)
    カテゴリC(例えば4件)
    合計10件

    というような並びを期待しているのでしょうか?この場合はかなりコーディングが厄介で、条件分岐が多くなると予想されます。シナリオとしては:

    ・最初に見つかった(最も新しい)記事のカテゴリがなにか?
    ・次に見つかった記事のカテゴリがなにか?

    を必要個数繰り返し、並べ替えをしなければならなくなる可能性もありますが…。特に

    ・最初に見つかったカテゴリがCで、次に見つかったカテゴリがAの場合
    ・・あくまでもカテゴリAを先に並べるのか
    ・・みつかった順に並べる、カテゴリC、カテゴリAの順

    とエクセプションが増えます。スペックがはっきりしていないと…。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「query_postsの条件分岐」には新たに返信することはできません。