get_postsとthe_permalinkとsetup_postdata()について
-
PHP初心者です。
sidebar.phpで最新記事一覧を表示させたいと思い、テンプレートタグ/get_posts – WordPress Codexに書かれていたコードをほんの少し編集した次のようなコードをsidebar.phpに追加したのですが、
<ul> <?php $myposts = get_posts('numberposts=5'); foreach($myposts as $post) : ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> </ul>
表示してみたところ、
the_title();
はちゃんと最新記事5件のタイトルになっていたのですが、the_permalink();
のほうは全て同じURL(5件目の記事のURLだと思います)になってしまいました。最終的に、foreachの直後の行に
setup_postdata(%post);
を追加することでタイトルもリンクもちゃんと動くようになったのですが、どうしてですか?また上記コードがちゃんと動かなかったので、
$wpdb->get_results();
でpost_statusがpublishedの記事のIDとタイトルを新しい順から10件、インデックス配列で取り出して、get_permalink(id);
でリンクを取り出せないかとやってみたのですが、これも動きませんでした。なぜでしょうか。(すみません、このときのコードは残っていません。インデックス配列で取り出したものをprint_r();
で表示させたらちゃんと取り出せていたので、get_permalink(id);
の使い方に問題があったのかと思っているのですが…。)よろしくお願いします。
4件の返信を表示中 - 1 - 4件目 (全4件中)
4件の返信を表示中 - 1 - 4件目 (全4件中)
- トピック「get_postsとthe_permalinkとsetup_postdata()について」には新たに返信することはできません。