サポート » テーマ » 特定のカテゴリの記事をトップページに表示させる時の問題について

  • 解決済 tobechang

    (@tobechang)


    ちょっと壁にぶつかりまして、質問させて頂きます。

    「おすすめ」というカテゴリを作成し、それに属する記事たちを
    トップページに表示させる、という話なのですが、

    <h3 id=”h-recommend”>おすすめの記事</h3>
    <?php $posts = get_posts(‘category_name=recommend’);
    foreach($posts as $post) :
    setup_postdata($post); ?>
    <h4><?php the_title(); ?></h4>
    <p>記事本文</p>
    <?php endforeach; ?>

    と記述しました。試しに、記事を三つばかり
    「おすすめ」カテゴリに設定して投稿したら、

    <h3>おすすめの記事一覧</h3>
    <h4>記事その①</h4>
    <p>記事その①の本文</p>
    <h4>記事その②</h4>
    <p>記事その②の本文</p>
    <h4>記事その③</h4>
    <p>記事その③の本文</p>

    という風になり、とりあえずの成功はしました。

    この場合、<h4>たちに関しては、記事が0の時は当然何も表示されない
    のですが、

    <h3>だけ表示されている状態が不自然です。

    今回、記事を投稿して初めて<h3>も含む記事全てが表示さる
    ようにしたいと思っています。

    但し、この時<h3>は繰り返しをしません。

    「おすすめ」カテゴリに記事を投稿して初めて全てが発動する、
    と言った感じにしたいです。

    どのような記述方法を取ればよろしいでしょうか?

    どなたかご教授頂ければ、非常に助かります。よろしくお願い致します。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • get_posts() の返り値が即ち「記事があるかどうか」ですので、get_posts() の返り値で評価するのが合理的です。

    <?php if( $posts = get_posts(‘category_name=recommend’) ) :?>
    <h3 id=”h-recommend”>おすすめの記事</h3>
    <?php foreach( $posts as $post) : setup_postdata($post)?>
    <h4><?php the_title()?></h4>
    <p>記事本文</p>
    <?php endforeach;endif?>

    if( $a = get_posts() ) は get_posts() の返り値を $a に代入すると同時にその返り値自体を評価します。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「特定のカテゴリの記事をトップページに表示させる時の問題について」には新たに返信することはできません。