最新の投稿を指定した件数、古い順(昇順)に表示する方法の覚書です。
最新の投稿を古い順に取得するには、2段階で取得します(もっと良い方法があるかも知れません)。
最初にすべての投稿を取得して found_posts で投稿の全件数を取得します。
そして一度 wp_reset_postdata() で $post の値を元に戻します。
再度 WP_Query を使ったサブループのクエリのパラメータ(投稿を取得するための条件)で、offset(投稿の先頭からスキップする件数)に「投稿の全件数から表示する件数を引いた値」を指定して 昇順(古い順)で投稿を取得します。
以下は最新の投稿を5件、古い順に表示する例です。
<?php //すべての投稿を取得 $my_query = new WP_Query( array( 'post_type' => 'post', ) ); //投稿の全件数 $my_found_posts = $my_query->found_posts; //$post の値を元に戻す wp_reset_postdata(); //表示する件数を指定 $my_posts_per_page = 5; $args = array( //投稿の全件数から表示する件数を引いた値をオフセットに指定 'offset' => $my_found_posts - $my_posts_per_page, 'posts_per_page' => $my_posts_per_page, 'order' => 'ASC', //昇順(古い順) ); $my_query = new WP_Query( $args ); ?> <?php if ( $my_query->have_posts() ) : ?> <ul> <?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; ?> </ul> <?php endif; ?> <?php wp_reset_postdata(); ?>
以下はカテゴリーが events の最新の投稿を5件、古い順に取得する例です。
<?php //すべての投稿を取得 $my_query = new WP_Query( array( 'post_type' => 'post', 'category_name'=>'events', //カテゴリーを指定 ) ); //カテゴリーが events の投稿の全件数 $my_found_posts = $my_query->found_posts; //$post の値を元に戻す wp_reset_postdata(); //表示する件数を指定 $my_posts_per_page = 5; $args = array( //カテゴリーが events の投稿の全件数から表示する件数を引いた値をオフセットに指定 'offset' => $my_found_posts - $my_posts_per_page, 'posts_per_page' => $my_posts_per_page, 'category_name'=>'events', //カテゴリーを指定 'order' => 'ASC', //昇順(古い順) ); $my_query = new WP_Query( $args ); ?>