サポート » 使い方全般 » カテゴリーページで所属するカテゴリーの記事一覧を表示させたいのです

  • 解決済 takahiro

    (@takahiro)


    カテゴリーページでそのカテゴリーに所属する記事(又は抜粋)の一覧を表示させたいのですが、いくら調べても出てきません・・・
    以下のソースで可能と書いてあったのでさっそく試してみたのですが、全カテゴリーの記事が表示されてしまい、解決したい問題と違っていたので困っています。
    ご教授お願いいたします。

    <ul>
    <?php
    $cat = get_the_category();
    $cat = $cat[0];
    $cat = $cat->cat_name;
    $posts = get_posts('order=asc&category=$cat&numberposts=表示件数');
    ?>
    <?php foreach($posts as $post):?>
    <li><a href="<?php the_permalink() ?>"><?php the_excerpt(); ?></a></li>
    <?php endforeach; ?>
    </ul>
4件の返信を表示中 - 1 - 4件目 (全4件中)
  • get_posts() の引数にある category で指定する値はカテゴリーの ID であるべきです。
    したがって渡すべきは、 $cat->cat_name ではなく $cat->cat_ID ですね。

    また、上記の例では省略されていますが、投稿が複数のカテゴリーに属している場合には、
    $cat[0] が表示させたいカテゴリーのオブジェクトであるとは限りません。
    カテゴリーページについて言えば、 get_the_category() は使わないで、

    $cat = get_query_var('cat');

    とした方が手っ取り早いかもしれません。

    トピック投稿者 takahiro

    (@takahiro)

    mizube様
    親切なご回答に感謝致します。
    早速試したのですがやはりダメでした・・・

    色々ググって見たのですが見つからないため煮詰まってしまいました。
    前後のソースも掲載しておきます。

    ご教授していただけると幸いです。

    <h2><?php single_cat_title(); ?></h2>
    
    <?php
    $cat = get_query_var('cat');
    $cat = $cat[0];
    $cat = $cat->cat_ID;
    $posts = get_posts('order=asc&category=$cat&numberposts=10');
    ?>
    <?php foreach($posts as $post):?>
    <div class="catContent">
    <a href="<?php the_permalink() ?>"><?php the_excerpt(); ?></a>
    <h3><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h3>
    </div>
    <?php endforeach; ?>

    すみません、説明が足りなかった上に、返信が遅くなってしまいました。

    get_query_var(‘cat’) は カテゴリーの ID を返します。
    したがって、

    <?php
    $cat = get_query_var('cat');
    $cat = $cat[0];
    $cat = $cat->cat_ID;
    $posts = get_posts('order=asc&category=$cat&numberposts=10');
    ?>

    ではなく、

    <?php
    $cat = get_the_category();
    $cat = $cat[0];
    $cat = $cat->cat_ID;
    $posts = get_posts("order=asc&category=$cat&numberposts=10");
    ?>

    もしくは

    <?php
    $cat = get_query_var('cat');
    $posts = get_posts("order=asc&category=$cat&numberposts=10");
    ?>

    としてください(、そして後者の方が手っ取り早いかも、という意味のつもりでした)。
    それから、シングルクォート (‘) とダブルクォート (“) の違いにも気をつけてください。
    シングルクォートの中では $cat などの変数が展開されませんよ。

    トピック投稿者 takahiro

    (@takahiro)

    mizube様

    丁寧なご説明ありがとうございます。
    さっそくやってみたら無事に解決できました!!

    ありがとうございました!!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カテゴリーページで所属するカテゴリーの記事一覧を表示させたいのです」には新たに返信することはできません。