広告を利用しています

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

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

WordPress

「WordPress」のアイコン画像

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

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

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

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

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

WAF設定をオンにしていると「閲覧できません (Forbidden access)」と表示されることは知っていました。

この場合は、契約しているサーバー(僕の場合「ConoHa WING」)のWAF設定を一時的にオフにすることで解決します。

WordPressで設定を変更して後「閲覧できません (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コノハウィング」を契約しているのでそちらでの解説になります。コントロールパネルにアクセスしてログインします。

PCブラウザで「ConoHa WING」のコントロールパネルにログインする手順画像

「php.ini」の編集ページを開く

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

「ConoHa WING」のコントロールパネルで応用設定を開く手順画像

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

「ConoHa WING」の応用設定内にある「PHP設定」を開く手順画像

「max_input_vars」を追加する

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

「ConoHa WING」の応用設定内にあるPHP設定から「php.ini」を編集する手順画像

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

PHP
max_input_vars = 10000
「ConoHa WING」の「php.ini」に「max_input_vars = 10000」を書き込んでいる画像
「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」のままです。再びできなくなったら数字を増やしたいと思っています。

PHP
max_input_vars = 3000

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

「ConoHa WING」で「php.ini」を編集して保存した画像

正常に設定保存できるか確認する

options.php」の設定を保存した時、「設定を保存できませんでした。」エラーがでなくなります。正常に「設定を保存しました。」と表示されて保存されます。

WordPressで「options.php」の設定保存が無事に成功している画像

僕の場合はWAF設定も合わせてオフにする必要がありました。

max_input_vars = 10000」は書き込んだままでいいですが、WAF設定は設定を変更する時だけオフにしてそれ以外の時は必ずオンに戻します。

【原因2】WAF設定

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

WordPressで設定を変更して後「閲覧できません (Forbidden access)」と表示されている画像

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

感想

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

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

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

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

2023年1月30日WordPress

Posted by ナポリタン寿司