ゲーム大好きWEBデザイナーの雑記ブログ

WEB関係

Advanced Custom Fieldsの設定が保存されない時の対処法

更新日:

お手軽にカスタムフィールドを作成できるWordPressプラグイン「Advanced Custom Fields」

いつも通りフィールドを追加して保存したはずなのに、何故か追加したフィールドが反映されない…というより設定が保存されていなかった。

普段からサイト制作はAdvanced Custom Fieldsに依存しており、このままでは非常にまずいので設定が保存できない原因を調べてみた。

原因はmax_input_varsの上限

WordPressのプラグインや設定を疑いましたが、どうやらサーバー側の設定に問題があったようです。

 max_input_vars の上限がデフォルトだと1000に設定されていて、Advanced Custom Fieldsがその上限を超えてしまったせいで保存されなかったようです。

ちなみにその時のフィールド数は70くらいでした。
クライアントの要望で、そこそこ複雑な投稿画面を作成中にいつの間にか設定が保存されていないことに気づきました。



対処法

方法① php.iniに設定を追加する

php.iniに設定を追加してmax_input_varsの上限をアップさせる方法です。

max_input_vars = 5000

上記のコードをphp.iniに追加することで上限が1000から5000に上がります。
ただし、極端に上限を上げてしまうとセキュリティ的に問題がありますので注意して下さい。
追加するカスタムフィールドの量にもよりますが、max_input_varsの数値は2000〜3000くらいあれば問題ないと思います。

php.iniを変更できる環境なら、このやり方が一番かんたんだと思います。

方法② 新しいフィールドグループを作る

max_input_varsの上限は変更したくない!
そもそもphp.iniを弄るのは怖い!
という人はこちらで対策しましょう。

手順としては単純で、 上限で保存できなかった項目を新しく作ったグループに追加するだけ です。

無駄に2つに分けるので、管理がちょっとめんどくさいかもしれませんが…

2つのグループを繋げて投稿画面に表示すれば、問題なく使えます。
並びの順番に関してはオプションの「順序番号」で調整できます。(0が一番上にくる)

php.iniの変更で無駄なトラブルを避けたい場合はこちらの方法がオススメです。

まとめ

ということで、Advanced Custom Fieldsで設定が保存できなくなった時は、まず最初にmax_input_varsの上限を疑ったほうが良いと思います。

最初にプラグインの競合を疑って怪しいプラグインを順番に停止していく作業をやりましたが時間の無駄でした…

php.iniを触りたくなければ、設定しなおすのが面倒だけど②の新しいフィールドを作るのがいいと思います。

僕は面倒なことが嫌いなので①のphp.iniを変更する方法で対応しています。







この記事をシェアする

関連記事

Atomのactivate power modeを使ってドヤる

Webデザイナーがコーディングするためには欠かせないエディタ。 同じ社内でも人によって使っているエディタが全然違う場合もあるでしょう。 社員A コーディングするならやはりDreamweaverです。 …

【2020年】ロリポップと比較してさくらのレンタルサーバが1歩リードか

※【2020年8月追記】ロリポップのハイスピードプランが神すぎた 流れが変わりました。こちらを見たほうがいいかもしれません ERA BLOGロリポップのハイスピードプランがコスパ最高すぎる件https …

クリック率をアップさせるボタンはHTML+CSSだけで超簡単に作れます

Webサイトを作る時、ボタンのデザインは意外と重要です。 ボタンのデザイン次第でクリック率が変わってしまうのは、実際に身をもって体験しています。 ちょっと前まではPhotoshopでボタンを作ることが …

WordPressで勝手に設定されるロゴのファビコンを消す方法

WordPressの最新バージョンをインストールすると、勝手にWordPressのロゴがファビコンに表示されるようになりました。 ↓こんな感じです…。   勝手にファビってんじゃねぇよ…。 …

ロリポップのハイスピードプランがコスパ最高すぎる件

ロリポップのハイスピードプランがコスパ最高に ロリポップがハイスピードプランを半額にする(月額550円〜)という暴挙に出ました。 元の値段は月額1100円〜なので、かなり大きな価格改定です。 コスパ重 …


コメント

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。

CAPTCHA