WordPressでカテゴリページの2ページ目以降が1ページと同じ内容になってしまう原因と対処法

カテゴリページや検索結果のページで、2ページ目(/page/2)に移動しても1ページ目と同じ記事が表示されてしまってページ送りがうまく動作しない場合は、抽出条件にページ送りのパラメータが正しくセットされていない可能性があります。

例えば下記のようにパラメーターをセットしていた場合、2ページ以降も同じ内容が表示されてしまいます。

$query = new WP_Query( array(
 'post_type' => 'post',
 'post_status' => 'publish',
));

上記だけではWP_Queryやget_postsは現在のページが判らないため、下記のように現在のページ番号をパラメータ(’paged’)に加える必要があります。

$paged = get_query_var( 'paged' );
$query = new WP_Query( array(
 'post_type' => 'post',
 'post_status' => 'publish',
 'paged' => $paged,
));

スキマ時間・1万円で始められる リスクをとらない起業術

現在のページ番号は、get_query_var( ‘paged’ )で取得します。
静的フロントページから取得する場合は、get_query_var( ‘page’ )を使用します。

ちなみに、get_query_var()で1ページ目の値を取得すると1ではなく0になります。(2ページ目は2)
WP_Queryなどではそのまま0で使っても問題ありませんが、1ページ目を1としたい場合は、下記のようにすると良いかもしれません。

$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;

スポンサーリンク