WordPressの検索結果ページで2ページ目以降がトップページが表示されて悩みまくっていたので、情報共有します。
状況
- パーマリンクの設定は、数字ベースを設定
- 検索結果1ページ(http://example.com/?s=)は正しく絞り込んだ数の記事数とページネーションが表示される
- 検索結果2ページ目以降(http://example.com/page/2/?s=)は、なぜかトップページの2ページ目以降が表示される
- カテゴリやカスタムタクソノミの一覧ページは、正しくページネーションされる
- WebサーバはNginxを利用
原因
- Nginxのlocation / の設定が上手くいっていなかった
location / { if (!-e $request_filename) { rewrite ^.+?(/wp-.*) $1 last; rewrite ^.+?(/.*\.php)$ $1 last; rewrite ^ /index.php last; } }
この記事を参考にしました。
最後に
パーマリンクをデフォルト設定にすると検索結果のページネーションも正常に動いていて、ずっとページネーションか設定、search.phpなどコードの記述方法が間違っていると思い、そのようなキーワード関連で調べていたため、一向に解決できない問題でした。
ふと、Webサーバの設定が間違ってるんじゃないかと思って修正すると、パーマリンクが数字ベースでも正常に動作するようになったので、同じような問題で詰まっている人は参考にしてみてください。