WordPressではデフォルトで1ページあたり10件と設定されているわけなんですが、
色々サイトを作っているとこの一覧ページに表示する記事の数を変更したくなる場合があります。
じつは、Wordpressではこの変の処理がややこしく、なんとなく作っていると結構ハマってしまう場合が多いので、メモとして残しておこうと思います。
$query = new WP_Query( array( 'post_type' => 'post', 'posts_per_page' => 5, ) ); $query->post_count = 5; if ( $query->have_posts() ): while ( $query->have_posts() ) : $query-> the_post(); // 色々処理 endwhile; wp_reset_postdata(); endif;
ここで、
WP_Query の posts_per_page と、 $query->post_count の数字は同じにしておく必要があるみたい。
というのも、表示する投稿数が表示したい投稿数に満たないとエラーがおこってしまうそうです。
なので、
if($query->post_count > $query->found_posts){ $query->post_count = 5; //posts_per_pageと合わせておく }
というコードも追記しておきましょう。
というわけで、最終的なコードはこんな感じ。
$query = new WP_Query( array( 'post_type' => 'post', 'posts_per_page' => 5, ) ); if($query->post_count > $query->found_posts){ $query->post_count = 5; } if ( $query->have_posts() ): while ( $query->have_posts() ) : $query-> the_post(); // 色々処理 endwhile; wp_reset_postdata(); endif;