はじめに
こんにちは、CMA制作部スタッフMasudaです。
先日、「FE Advanced Search」というプラグインを使用して、絞り込み検索を実装しているサイトで、設定が保存できない現象が発生しました。
バージョンを変更したり、記述を見直したりしましたが、エラーログも出ず苦戦したので、同じように困っている人の力になれたらと思い記事にしました。
事象
Wordpress管理画面内「FE Advanced Search」の設定で、項目を追加して保存ボタンを押しても保存されない。
- 管理画面でプラグインの設定を保存しても値が保存されない
- 保存後、スタイルが効いていない画面に遷移する
- URLに
&noheader=trueが付与される - WordPressのデバッグログにエラーが出力されない
本来の設定画面
スタイルが効いていない画面
原因
今回のページは入力項目数が非常に多い設定画面です。
このような場合、PHPの max_input_vars 制限が原因である可能性があります。
PHPには、リクエストで受け取る入力変数の数を制限する max_input_vars という設定があります。
デフォルト値は 1000 で、フォームの入力項目がこの数を超えると、それ以降のデータはPHP側で破棄されます。
その結果、
- WordPressが受け取るPOSTデータが途中で欠ける
- 設定の保存処理が正常に完了しない
- 管理画面の表示が崩れる
といった現象が発生します。
項目を追加したことでデフォルト値以上の項目数になってしまい、データが保存されなかったようです。
対処方法
max_input_vars の値を増やすことで解決しました。
.user.ini に設定を追加
max_input_vars = 3000
.user.ini に上記設定を追加することで、POSTで受け取れる入力数の上限を引き上げることができます。
※ サーバー環境によっては php.ini や .htaccess で設定する場合もあります。
まとめ
「FE Advanced Search」以外のプラグインでも、プラグイン設定が保存できない場合、PHPの入力変数制限に引っかかっている可能性があります。
特に、
- 入力項目が多いプラグイン
- カスタムフィールドや設定項目が大量にある画面
では max_input_vars の影響を受けやすいため、PHP設定を確認する必要があります。

