フォーラム

[解決済み] カテゴリーページで所属するカテゴリーの記事一覧を表示させたいのです (5 件の投稿)

  1. takahiro
    メンバー
    3 years前の投稿 #

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

    <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>
  2. mizube
    メンバー
    3 years前の投稿 #

    get_posts() の引数にある category で指定する値はカテゴリーの ID であるべきです。
    したがって渡すべきは、 $cat->cat_name ではなく $cat->cat_ID ですね。

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

    $cat = get_query_var('cat');

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

  3. takahiro
    メンバー
    3 years前の投稿 #

    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; ?>
  4. mizube
    メンバー
    3 years前の投稿 #

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

    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 などの変数が展開されませんよ。

  5. takahiro
    メンバー
    3 years前の投稿 #

    mizube様

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

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

返信

ログイン しなければ投稿できません。

About this Topic