技術ブログ

#blog

【WordPress】WP-PageNaviで2ページ目が表示されない時の解決法

WordPressのプラグイン「WP-PageNavi」で、「2ページ目をクリックしても、URLだけ変わって表示される記事が1ページ目と同じまま」という場合の解決方法を解説します。

原因:サブクエリが現在のグローバルなページ番号を継承していないことにある。

URLが

…/page/2/

となっているのに中身が変わらない場合、WordPressのクエリ(記事を取得する命令)が、「現在のページ番号」を受け取っていないことがほとんどです。

特に、WP_Query を使って独自のリクエストを書いている場合は、明示的に paged 引数を与えない限り、デフォルトの 1(先頭ページ)を返し続けます。

解決方法:pagedパラメータを追加する

修正ポイントは2つだけです。

1. 現在のページ番号を取得して変数に入れる

まず、今何ページ目にいるのかを取得します。

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

クエリの引数($args)に paged を渡す

次に、取得したページ番号を WP_Query の引数に加えます。

$args = array(
    'post_type' => 'post',
    'posts_per_page' => 10,
    'paged' => $paged, // ここを追記
);
$my_query = new WP_Query($args);

まとめると、コード全体は以下のようになります。

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

$args = [
    'post_type'      => 'post',
    'posts_per_page' => 10,
    'paged'          => $paged, 
];

$the_query = new WP_Query($args);

これだけで、WordPressは「あ、今は2ページ目の記事を10件取ってくればいいんだな」と正しく判断できるようになります。

まずは出張相談をご利用ください。
岩手県内は無料で訪問します。

ホームページやSNSに関するお悩みは、お気軽にご相談ください。
スタッフが御社を訪問し、お話を伺います。費用はかかりませんので、ご安心ください。

強引な営業は一切いたしません

0120-501-764

受付時間:平日 9:00〜18:00

岩手県内どこでも伺います。オンライン相談や、メールのみでのご相談も承ります。