今回は、WordPressのプラグイン「WP-PageNavi」で発生する不具合に関する内容です。

WP-PageNaviでページナビを設置すると、「2ページ目が表示されない」などの問題が発生することもあります。
そこで、初心者でも試せる原因の切り分けと具体的な対処手順を分かりやすくまとめました。

WP-PageNaviを使用されている方は、ぜひ参考にしてください。

よくある不具合

WP-PageNaviを使用してよく起きる不具合としては、次のようなものが上げられます。

  • 2ページ目以降が表示されない(404エラーになる、または同じ記事一覧が繰り返される)
  • ページナビゲーション自体が表示されない
  • デザインが崩れる(見た目が乱れる)
  • 投稿数やページ数が正しく反映されない

特に「2ページ目以降が表示されない」というトラブルは有名で、よく発生します。

WP-PageNaviは非常に便利なプラグインで、私もよく使用しています。
ですが、上記のような問題が発生する可能性もあるので、注意して使用しましょう。

WP-PageNavi不具合のよくある原因

WP-PageNaviで不具合が発生するよくある原因としては、以下のようなものが考えられます。

  • テーマとの相性:使用中のテーマとWP-PageNaviがうまく連携していない。
  • 他プラグインとの相性:他のプラグインとの相性が悪い。
  • クエリの設定ミス:`query_posts`や`WP_Query`を使うときに、ページ番号(paged)を正しく渡していない。
  • パーマリンク設定の問題:パーマリンクの再保存が必要なケースがある。
  • キャッシュの影響:キャッシュにより古い情報が表示される。
  • スラッグ名の競合:固定ページやカスタム投稿タイプのスラッグが重複していると挙動がおかしくなることがある。
  • テーマでの必須フック欠如:`wp_head()`や`wp_footer()`が抜けているとCSSやJSの読み込みに問題が出る。

WP-PageNavi不具合時にまずやるべき基本チェック

WP-PageNaviで不具合が発生する場合には、次のような対応を順番に試してみましょう。

  1. テーマを一時的に公式テーマに切り替え
    Twenty Twenty-Threeなど公式テーマに切り替えて、同様の不具合が出るか確認(テーマ由来か判断できる)。
  2. プラグインの競合チェック
    一時的に他のプラグインを無効化して、症状が改善するか確認。
  3. パーマリンクを再保存する
    管理画面→「設定」→「パーマリンク」へ行き、何も変更せずに「変更を保存」をクリック。リライトルールが再生成されます。
  4. キャッシュをクリアする
    使用中のキャッシュプラグイン(例:WP Super Cache、W3 Total Cache、LiteSpeed等)や、サーバーキャッシュをクリアして確認。

ちなみに、2ページ目が表示されない場合は、次のセクションの内容を試してみましょう。

「2ページ目が表示されない」時の具体的な対処法(コード付き)

2ページ目が表示されないのは、カスタムループを使っている場合に特に多い不具合です。
原因としては、paged(現在のページ番号)がクエリに渡っていないことが多いです。

この場合は、以下のようなコードでページ番号を確実に設定するようにしましょう。

<?php
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$args = array(
  'post_type'      => 'post',
  'posts_per_page' => 10,
  'paged'          => $paged
);
$the_query = new WP_Query( $args );

if ( $the_query->have_posts() ) :
  while ( $the_query->have_posts() ) : $the_query->the_post();
    // 記事の表示(例:the_title(); the_excerpt(); など)
  endwhile;

  // WP-PageNavi を使う場合($the_query を渡す)
  if ( function_exists( 'wp_pagenavi' ) ) {
    wp_pagenavi( array( 'query' => $the_query ) );
  }

  wp_reset_postdata();
else :
  echo '<p>記事が見つかりません。</p>';
endif;
?>

ポイント:

  • `get_query_var(‘paged’)`を使って現在のページ番号を取得する。
  • `WP_Query`に`paged`を渡して初期化する。
  • ページナビを出力する際には、`wp_pagenavi( array(‘query’ => $the_query) )` のように、使っているクエリを渡す。

その他のチェック項目(初心者でも確認しやすい)

1. wp_head() / wp_footer() の確認

テーマのheader.php<?php wp_head(); ?>footer.php<?php wp_footer(); ?> があるか確認してください。
これがないとスタイルやJSの読み込みがうまくいきません。

2. スラッグ名の重複

固定ページとカスタム投稿タイプで同じスラッグ(URLの一部)を使っていると競合することがあります。

例えば、固定ページのスラッグがnewsで、カスタム投稿タイプのスラッグもnewsのような場合です。
この場合には、スラッグ名を変更してみてください。

3. posts_per_pageと表示設定の不一致

管理画面→「設定」→「表示設定」にある「1ページに表示する最大投稿数」とテンプレート内のposts_per_pageの値が異なると挙動がおかしくなることもあります。
この点も確認しておきましょう。

それでも解決しない場合の対処

上記のような対応をとっても解決しない場合

  • ログ(サーバーのエラーログ)を確認する
  • 公式フォーラムやテーマ作者へ問い合わせる

まとめ

今回は、WordPressプラグインの「WP-PageNavi」で発生する不具合についてまとめました。

特に、「2ページ目が表示されない」という問題はよく起こり、主にクエリ(paged)設定の誤り、パーマリンク、キャッシュ、スラッグの競合、テーマの欠陥が原因で起きます。
また、他にも様々な原因で不具合が発生することもあります。

当記事でも不具合の原因や解決方法についてまとめています。
ぜひ参考にしてください。

参考

※上記は技術解説がまとまっている外部リンクです。状況によっては公式ドキュメントやテーマ作者のドキュメントも確認してください。