当サイトは、アフィリエイト・アドセンス広告を掲載しています。消費者庁が、2023年10月1日から施行予定である景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています(記事はこちら、消す方法はこちら

参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

【WordPress】「設定を保存できませんでした。」の対処法

WordPress

「WordPress」のアイコン

この記事では、WordPressで「options.php」ページの設定を変更した後、「設定を保存できませんでした。」と表示されて、保存できない時の対処法について書きます。

色々原因があると思いますが、僕の場合は、WAFとPOST送信の上限値が原因でした。

WordPressの「options.php」で「設定を保存できませんでした。」と表示されている画像1

とある日以降、WordPressで、「options.php」ページの項目(例:image_default_size)を変更して、「変更を保存」をクリックすると、「設定を保存できませんでした。」と表示されて、変更できなくなりました。

WordPressの「options.php」で「設定を保存できませんでした。」と表示されている画像2

WAF設定をオンにしていると、「閲覧できません (Forbidden access)」と表示されることは知っていました。この場合は、契約しているサーバー(僕の場合、ConoHa WING)のWAF設定を一時的にオフにすることで解決します。

「閲覧できません (Forbidden access)」のスクリーンショット

「設定を保存できませんでした。」の場合は、どうすればいいのかさっぱり分かりませんでした。調べてもそんなに情報がなく、どうしたものか悩んでいました。

そんな中、下記サイト様を見つけました。どうやら、POST値の制限がデフォルトでは1000になっているのが原因っぽいです。

参考:ConoHaサーバーでPOST値の制限が1000個までと気づくまで。 | 開発 | 2020年6月4日 | モノグサにお灸

そこで、「ConoHa WING」の「php.ini」に「max_input_vars = 10000」を書いて、制限値を増やしてみると、無事に解決しました。

本記事では、僕みたいな初心者が困らないように書きます。僕自身、初心者なので、いまいち理解できていませんが、同じように悩んでいる方、参考にしてみてください。

なお、一概に本記事の方法が原因ではない可能性もあります。あくまで、解決策の一つとして捉えてください。

【原因1】「php.ini」のPOST値制限

なんでこれが原因なのか推測(どうでもいい方はスルーして)

WordPressでは、デフォルトのPOST送信の上限が1000に設定されています。

POSTというのは、情報を送ることを指すようです。僕は素人なので分かりませんが、恐らく、WordPressで1つの項目を変更して保存すると、サーバーに1つのPOSTが送信される…的な感じだと思います。

この設定の上限値が1000になっていることで、「options.php」の情報が正常に送られないことがあるようです。

僕の場合、ある日を境に「設定を保存できませんでした。」と表示され始めました。ここで納得しました。通常、「options.php」の設定項目は、POSTが1000を超えないようになっていますが、インストールしているWordPressプラグインやテーマによって、1000を超えることがあります。

確かに、最初のころはプラグインもそんなに導入していなかったので、設定を変更した際、送信するPOSTが1000に収まっていたんだと思います。それが、色々カスタマイズしていくうちに、送信する量も増えて、1000を超えちゃったんだと思います。

つまり、「options.php」の設定項目が多い方ほど、「設定を保存できませんでした。」と表示されると思います。「options.php」にアクセスして、スクロールバーの大きさを見てみましょう。かなり小さいはずです。それだけ設定項目があるということです。

WordPressにある「options.php」ページのスクロールバーの画像

POST送信の上限値を増やす手順

契約しているサーバー側の設定から変更できます。「ご自身のサーバー名+PHP編集」で調べてみましょう。例えば、「エックスサーバー」を契約している方は、「エックスサーバー PHP編集」といった感じで検索します。

僕は、「ConoHa WING(コノハ・ウィング)」を契約しているので、そちらでの解説になります。コントロールパネルにアクセスして、ログインします。

「ConoHa WING」の「php.ini」にPOST送信値上限撤廃のコードを書き込む手順画像1

上部の「VPS」ではなく、「WING」タブになっていることを確認し、左側の「サイト管理」→「サイト設定」→「応用設定」をクリックします。

「ConoHa WING」の「php.ini」にPOST送信値上限撤廃のコードを書き込む手順画像2

「PHP設定」をクリックして展開します。

「ConoHa WING」の「php.ini」にPOST送信値上限撤廃のコードを書き込む手順画像3

入力フォームが表示されるので、右側にある鉛筆マーク(🖉)をクリックします。

「ConoHa WING」の「php.ini」にPOST送信値上限撤廃のコードを書き込む手順画像4

入力できるようになるので、「max_input_vars = 10000」と入力します。既に別のコードを書いている場合は、改行してから書きます。「保存」をクリックします。

max_input_vars = 10000
「ConoHa WING」の「php.ini」にPOST送信値上限撤廃のコードを書き込む手順画像5
「max_input_vars = 10000」の解説(素人)

恐らく、「max_input_vars」がPOST送信の上限値を指しています。こちらを、デフォルトの「1000」から「10000」に変更するという意味です。

1000から10000に変更するので、よっぽどのことがない限りは、エラーが出なくなると思います。「options.php」の設定項目があまりにも多い場合は、10000でも足りないかもしれません。

ほとんどの方は、足りないどころか、余るくらいだと思います。「一気に増やすのは不安…」という場合は、「max_input_vars = 5000」といった感じで、もう少し数字を減らすといいかもしれません。

僕の環境だと、3000でもいけました。3000でいけたので、今も「max_input_vars = 3000」のままです。再びできなくなったら、数字を増やしたいと思っています。

max_input_vars = 3000

保存すると、左下に「成功しました」とポップアップが表示されます。

「ConoHa WING」の「php.ini」にPOST送信値上限撤廃のコードを書き込む手順画像6

これで、「options.php」の設定を保存した時、「設定を保存できませんでした。」のエラーが出ないと思います。僕の環境では、正常に「設定を保存しました。」と表示されました。

「ConoHa WING」の「php.ini」にPOST送信値上限撤廃のコードを書き込む手順画像7

僕の場合は、WAF設定も合わせてオフにする必要がありました。「max_input_vars = 10000」は書き込んだままでいいですが、WAF設定は、設定を変更する時だけオフにして、それ以外の時は、必ずオンに戻します。

【原因2】WAF設定

「WAF(ウェブアプリケーションファイアウォール)」が原因の場合は、「設定を保存できませんでした。」ではなく、「閲覧できません (Forbidden access)」と表示されると思います。

「閲覧できません (Forbidden access)」のスクリーンショット

この場合は、下記記事を参考にしてみてください。契約しているサーバーの設定画面から、一時的にWAF設定をオフにします。

感想

以上、WordPressの「options.php」ページで、「設定を保存できませんでした。」と表示された時の対処法でした。

本設定が不要になった場合は、「php.ini」に書き込んだコードを削除しましょう。

「php.ini」に書き込んだ「max_input_vars = 3000」を削除する手順画像

余談ですが、デフォルトの画像サイズを「フルサイズ」にするときに、今回の問題にぶつかりました。

WordPress