最新の投稿を指定した件数、古い順(昇順)に表示する方法の覚書です。
最新の投稿を古い順に取得するには、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 ); ?>