【トラブルシューティング】Polylang使用時の検索フォームで403エラー
このサイトでは多言語対応のため「Polylang」というプラグインを使用しています。
同時に自作テーマを使用しているのですが、英語サイト(言語の初期設定は日本語)で検索すると403エラー(forbidden)が発生するという問題に遭遇しました。
各ファイル&フォルダのPermissionや検索フォーム表示用テンプレートのsearchform.phpの内容確認をしても解決せず。
Google先生に聞いたところ以下のサイトを発見。
そのページの一番下にある回答に書かれた方法で正常に検索できるようになりました。
https://wordpress.org/support/topic/search-function-not-working-with-polylang/
具体的な方法は以下の通り。
管理者メニューの「言語>設定>URLの修正」にある「フロントページのURLにページ名またはページIDの代わりに言語コードが含まれています」にチェックを入れます。
これに加えて
- URLにデフォルトの言語の言語情報を表示しない
- プリティーパーマリンクの/languege/を削除する
- 言語はプリティーパーマリンク内のディレクトリ名から設定される
にもチェックを入れておくと、フロントページのURLがスッキリする上にテーマ作成時のホームページURL取得時の関数が統一できたりして便利というおまけも付いてきます。
※デフォルト以外の言語では、フロントページのURLが「https://chappytabby.com/en/top-2」みたいに固定ページのslugもついてきてしまうため。