WordPress, ループをカスタマイズする3つの方法

WordPressでループをカスタマイズするメモ。

query_posts()
http://wpdocs.sourceforge.jp/テンプレートタグ/query_posts

global $query_string;
// 全投稿出力
$posts = query_posts($query_string.'&posts_per_page=-1');
 
if (have_posts()) : while (have_posts()) : the_post();
   // ループ処理
   endwhile;
else;
   // not found
endif;
 
// ループをリセット
wp_reset_query();

オリジナルのループを元にカスタマイズしたい時に使用する。
wp_reset_queryを最後に実行する。

WP_Query()
http://wpdocs.sourceforge.jp/関数リファレンス/WP_Query

$args = array(
   'post_type'=>'page',
   'post__in' => array('595', '33', 44)
);
$query = new WP_Query($args);
 
while($query->have_posts()) : $query->the_post();
   // ループ処理
endwhile;
 
// queryをリセット
wp_reset_postdata();

オリジナルのループを作成、複数のループを作成。
wp_reset_postdataを最後に実行する。

get_posts
http://wpdocs.sourceforge.jp/テンプレートタグ/get_posts

$myposts = get_posts('posts_per_page=5&offset=1&category=1');
foreach($myposts as $post) :
   setup_postdata($post);
   // ループ処理
endforeach;

リセットはいらない。
引数は配列。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">