WordPressのカスタムフィールドを柔軟に追加できる高機能なプラグイン「Advanced Custom fields」
https://www.advancedcustomfields.com/
せっかく登録したのに、なぜか消えている・・・というショックな出来事が何回か続いたため調べてみました。
どうやら、php.iniの max_input_vars の設定によるもののようです。
Dos攻撃を防ぐ目的で、PHP5.3.9から導入されたもので、設定数以上の変数が送られてくるとその部分は削除されるようになっています。
そのため、Advanced Custom Fieldsである程度の数を設定すると消えてしまうということです。
Advanced Custom Fields自体に上限があるわけではなく、PHPの仕様によるのですね。
今回、XSERVERを利用していたのですが、64項目あたりでそれ以降が消えていました。
解決方法は、
- max_input_varsの設定を変更する
- フィールドグループを分割する
の2つの方法です。
max_input_varsはphp.iniが編集できるサーバーであれば設定変更は可能ですが、サーバーへの負荷にも関わることなので、後者のフィールドグループを分割するのがよいと思います。