サポート » 使い方全般 » 指定したページに子カテゴリそれぞれの最新記事を表示したい

  • 解決済 anire

    (@anire)


    こんにちは。
    タイトルではわかり辛いかと思いますが、ご教授願います。
    「フルーツ」ページのテンプレートをpage-fruits.phpとして作成しています。こちらに書きこむコードを考え中です。

    ◆作成しているカテゴリは以下の通りです。
    果物
    ├ いちご (fruit001)
    ├ ぶどう (fruit002)
    └ もも  (fruit003)

    ◆ページでの表示は、以下のように表示したいです。
    ・フルーツページの本文
    ・いちごの最新記事1件の本文
    ・ぶどう最新記事1件の本文
    ・もも最新記事1件の本文

    ◆現在できたのは、いちご、ぶどう、もも、それぞれの最新記事を取得するものです。
     このコードのカテゴリスラッグを変更して3つ書けば一応思った表示にはなりました。

    <?php
    $myposts = get_posts(‘numberposts=1&category_name=fruit001’);
    foreach($myposts as $post) :
    ?>
    <div id=”fruit001″>
    <h3><?php $cat = get_the_category(); $cat = $cat[1]; { echo $cat->cat_name; } ?></h3>
    <?php echo $post->post_content; ?>
    </div>
    <br clear=”all”>
    <?php endforeach; ?>

    しかし、これら子カテゴリが30件ほどあり、今後 りんご (fruit004) カテゴリの追加の可能性もあるのでなんとか繰り返し処理を行うことはできないでしょうか?

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

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • popup

    (@popup)

    <?php
    $categories = get_categories('child_of=「果物」カテゴリーのID');
    foreach($categories as $cat) :
    $myposts = get_posts('numberposts=1&category='. $cat->cat_ID);
    foreach($myposts as $post) :
    ?>
    <div id="<?php echo $cat->slug; ?>">
    <h3><?php echo $cat->name; ?></h3>
    <?php echo $post->post_content; ?>
    </div>
    <br clear="all">
    <?php endforeach; ?>
    <?php endforeach; ?>

    idとカテゴリ名の表示については、print_r($categories)等で確認して、どれを表示するか適宜決めてください。

    上記でカテゴリ一覧を上手く取得できない場合は、child_ofの替わりにparentを、それでも上手くいかない場合は、excludeまたはincludeを指定して取得してください。
    http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_categories

    anire

    (@anire)

    ありがとうございます!!
    書いて頂いたコードでばっちり思った通りの表示ができました。
    加えて、表示順をカテゴリidの順にしたかったので、2行目のみ以下のように変更しました。

    $categories = get_categories(‘child_of=8&orderby=id’);

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

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「指定したページに子カテゴリそれぞれの最新記事を表示したい」には新たに返信することはできません。