• 属するカテゴリーのIDを取得して代入させたいのです。
    /?cat=3のカテゴリーページでカテゴリー3に属する一覧を10個表示させたいのですが、現状新着順に10個表示されてしまいます。

    カテゴリー.phpをカテゴリー一覧の共通のテンプレートとして(カテゴリーAページならAを10個、カテゴリーBページならBを10個.c.d.e.f.etc…)使いたいのですがどうもうまく動きません。

    以下が現状のコード:カテゴリー.phpに記述しています。
    catの部分に属するカテゴリーIDを入れたいと考えています。
    ※ループで交互に背景を変えるようにしています。

    <?php
    $cat = get_query_var(‘cat’);
    $cats_post = get_posts(‘numberposts=10’);
    $flip = array(‘loop_post_w’=>’loop_post_g’,’loop_post_g’=>’loop_post_w’);
    $class = ‘loop_post_w’;
    foreach($cats_post as $post) : setup_postdata($post);
    $class = $flip[$class]
    ?>
    <div class=” <?php print $class ?>”>
    /* コンテンツをいれています */
    </div>
    <?php endforeach; ?>

    ご伝授いただけないでしょうかお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは。
    テンプレート階層を理解してください。
    http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E9%9A%8E%E5%B1%A4

    category.php を作成しておけばどんなカテゴリーでもcategory.phpが適用されます。
    とりあえず、ご自分で書いたコードはなしでindex.php(あるいはarchive.php)から複製して
    category.phpを作ってみてください。

    ここまでできたら、次に表示件数を調整してみてください。
    もちろん category.php 内でget_postsでも可能ですが、
    get_postsはメインクエリ(この場合はカテゴリーアーカイブ)「以外」にクエリを取得するのに向いています。
    カテゴリーアーカイブでのみ表示件数を変更するのであれば
    is_main_queryを使うのがスマートです。
    もちろん、query_postsでも大丈夫ですが。
    以下の記事を参考にしてみてください。

    1. 3.3の新しい関数 is_main_query を使おう
    2. Function Reference/is main query

    ここまでできてから各投稿へのクラス付与などを工夫すればよいかと思います。

    ※ループで交互に背景を変えるようにしています。

    PHPでもできなくはないですが、jQuery等でも同じ事が可能ですよ。
    (アプローチ方法は色々あります)

    トピック投稿者 bluegill

    (@bluegill)

    >>gatespaceさま

    ご丁寧にありがとうございます。
    PHPに関して素人でもういちど基本から見直してみます。

    頂いた内容を勉強させていただきます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「各カテゴリーの一覧を表示」には新たに返信することはできません。