前回の記事で、カスタム投稿タイプの情報を各インデックスページにて出力する記事を書きましたが、今回は、そのときに書ききれなかったループ処理について今さならがらメモる。
前回の記事「wordpress:固定ページ内にカスタム投稿タイプ毎の記事を出力する」では固定ページ(page.php)にカスタム投稿タイプの出力の設定をしたので、下記のように記述した
post_name);
if(have_posts()): while(the_posts()): the_post();
?>
ここに出力
当然ながら上記の記述だとカスタム投稿タイプの情報が表示されるので、仮に上記ループ内で「the_title()」と記述してもカスタム投稿タイプで投稿した情報のタイトルが出力される。
しかし固定ページのタイトルとかコンテンツを表示したいとなると下記のようになる。
//固定ページの情報を出力
//query_postでpost_typeを指定
query_post("post_type=".$post->post_name);
if(have_posts()): while(the_posts()): the_post();
?>
ここに出力
上記のようにループを2回使ってるのだが、1ページに複数ループを使用する場合は、「WQ_Query」や「get_posts」を利用するらしい。様はquery_postsはページに一回しか使えないらしい。詳しくは下記のブログ
- 「Webデザインレシピ:WordPressでブログじゃないWebサイトを作るときのいろいろ(サンプル付き)」
- 「hijiriworld Web:WordPressのループの仕組みを深く知る query_posts() と get_posts() の違い」
- 「デザイナーOxyのWebサイト:WordPressで複数のループを使ってカスタム投稿一覧を自在に表示する方法」
//固定ページの情報を出力
//カスタム投稿タイプの情報を出力
$post->post_name
); ?>
have_posts()): $myposts->the_post(); ?>