サポート » 使い方全般 » TOPページに新着記事を5件表示したい

  • 解決済 ichi1651

    (@ichi1651)


    MTからWorePressに移行中です。
    php初心者なものでかなり調べてみたのですが、どうしても解決できない部分があります。

    以下のタグを使いますとタイトルやカテゴリーは5件正常に表示されるのですが、
    本文が5件とも同じ内容になってしまいます。
    タグ「the_content」が違うような気もしますが、、、
    <?php
    $myposts = get_posts(‘numberposts=5&orderby=post_modified’);
    foreach($myposts as $post) : ?>
    <h4> “><?php the_title(); ?></h4>
    <!–</p>–>
    <p class=”doc”>
    <?php the_content(‘続きを読む、、、 »’); ?>
    </p>
    <p class=”center”> カテゴリー: <?php the_category(‘, ‘) ?> | <?php comments_popup_link(‘コメントはまだありません。’, ‘コメント数 1 ‘, ‘コメント数 %’); ?> </p>

    <?php endforeach; ?>

    どなたかご享受お願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • http://wpdocs.sourceforge.jp/テンプレートタグ/get_posts

    ↑このページの「全ての投稿データにアクセス」の部分に書いてありますヨ。

    様々な理由から、デフォルトでは、記事 ID や the_content() 経由での記事本文といったいくつかのデータが get_posts で取得できません。これは、内部関数 setup_postdata() を $post 配列で呼ぶことにより解決できます。

    トピック投稿者 ichi1651

    (@ichi1651)

    V.J.Catkick様
    早速のご指導ありがとうございました。
    ただ、
    <?php the_excerpt(); ?> は該当の文章が表示されるのですが、
    <?php the_content(); ?> はやはり10個目のエントリーの中身が
    5個に記事に表示されてしまいます。
    DBがおかしくなったしまったのでしょうか?

    foreachの直後に

    setup_postdata($post);

    を入れても変わりませんか?具体的には

    foreach($myposts as $post) :
    setup_postdata($post); ?>
    …..

    とこのように書くのですが…。

    トピック投稿者 ichi1651

    (@ichi1651)

    できました。ありがとうございました。
    foreach($myposts as $post) :
    setup_postdata($post); ?>
    に変更したらできました。
    自分は
    foreach($myposts as $post) : ?>
    としていました。助かりました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「TOPページに新着記事を5件表示したい」には新たに返信することはできません。