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; // 投稿をリセット 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; |
リセットはいらない。
引数は配列。
update 2012-03-19
get_posts
の時Resetはいらないは間違い。
setup_postdata
してるのでResetしないと!
wp_reset_postdata(); |
ちゃんとリセットしてあげないと不幸が待ってる。