- 2026.06.12
- 保守・セキュリティ
- GIVデザインチーム
WordPressが突然更新できない|ACFのnonceエラー対処法
WordPressの固定ページや投稿を更新しようとした瞬間、次のようなエラーが出て保存できなくなることがあります。
> 検証失敗。
> ACF was unable to perform validation because no nonce was received by the server.
「昨日まで普通に更新できていたのに、ある日突然」というケースが非常に多いのがこのエラーの特徴です。実はこれ、WordPressやACF(Advanced Custom Fields)が壊れたわけではなく、サーバー側の設定値の上限に達したことが原因であることがほとんどです。
この記事では、エラーの意味・なぜ「ある日突然」起きるのか・確実な直し方を、実際の対応事例をもとに解説します。
このエラーは何を言っているのか
「nonce(ノンス)」とは、WordPressが「この保存リクエストは正規の画面から送られたものか?」を確認するための、使い捨ての検証トークンです。フォームを送信すると、入力内容と一緒にこのnonceもサーバーへ送られ、サーバー側で照合します。
エラーメッセージは「サーバーにnonceが届かなかったので検証できなかった」と言っています。つまり、入力データの一部がサーバーまで届いていない状態です。
なぜ「ある日突然」起きるのか
原因の本命は、PHPの 「max_input_vars(一度に受け取れる入力項目数の上限)」です。デフォルトは 「1000」。
ここで問題になりやすいのが、ACFの繰り返しフィールド(Repeater)を使ったページです。たとえば「試合結果」「実績一覧」「メンバー紹介」のように、データを行で追加していく構造の場合、保存時に送信される入力項目は次のように積み上がっていきます。
– 1行あたり 10〜15項目(タイトル、日付、得点、コメント…)
– これが数十行たまると、合計で1000項目を軽く超える
「max_input_vars」を超えると、PHPは超過分を警告も出さずに黙って切り捨てます。そして、切り捨てられる「後ろのほう」にちょうどnonceフィールドがあるため、サーバーに届かず「nonceが受け取れなかった」というエラーになるのです。
データを追加するたびに項目数は増えていくので、ある日しきい値を超えた瞬間に突然発症する——これがこのトラブルの正体です。新しく何かを変更したわけでもないのに急に壊れた、という感覚はここから来ています。
まず現在値を確認する
WordPress管理画面から、今の 「max_input_vars」の値を確認できます。
「ツール」 → 「サイトヘルス」 → 「情報」 → 「サーバー」
この中の「PHP 最大入力変数(max input variables)」を見てください。「1000」になっていれば、ほぼこのケースで確定です。
直し方(サーバー環境別)
PHPがFPM(fpm-fcgi)で動いている環境では、「.htaccess」 に 「php_value max_input_vars」 を書いても効きません。サーバーごとに正しい方法を選びます。
共通「.user.ini」 を置く(多くのFPM環境で有効)
WordPressのルート(wp-config.phpがある階層)に 「.user.ini」を作成し、次を記述します。
max_input_vars = 500
post_max_size = 64M
upload_max_filesize = 64M
max_execution_time = 300
memory_limit = 256M
反映には最大5分ほどかかります(「user_ini.cache_ttl」のデフォルトが300秒のため)。
Xserver / さくらインターネット等
サーバーパネルの「PHP設定」「php.ini設定」から 「max_input_vars」 を直接 「5000」 に変更できます。コントロールパネルがある場合はこちらが確実です。
反映の確認
設定後、再びサイトヘルスで値が 「5000」になっていることを確認し、問題のページを更新してみてください。エラーが消えていれば対応完了です。
値はいくつにすればいい?
「5000」にしておけば、当面はまず問題ありません。Repeaterで年間数十〜百件のデータが積み上がるサイトでも安心です。さらに不安があれば 「10000」でも、サーバー負荷的にはほぼ影響ありません。
併せて見直したいポイント
このエラーが出るページは、リビジョン(更新履歴)が数百件たまっていることもよくあります。直接の原因ではありませんが、データベースが重くなる一因なので、保守のタイミングでリビジョン上限の設定やクリーンアップも検討すると安定します。
まとめ
– 「nonceが受け取れない」エラーの多くは、PHPの 「max_input_vars」(デフォルト1000)超過が原因
– ACFのRepeaterなどデータが積み上がるページで「ある日突然」発症する
– サイトヘルスで現在値を確認し、「.user.ini」 やサーバー設定で `5000` に引き上げれば解決
– FPM環境では 「.htaccess」 では効かない点に注意
WordPressの「突然動かない」を未然に防ぐなら
このエラーのように、WordPressのトラブルは「何もしていないのに、ある日突然」起きるものが少なくありません。原因がサーバー設定の上限であったり、プラグインのバージョン非互換であったりと、画面を見ただけでは判断しにくいのが厄介なところです。
GIVのホームページ保守サービスでは、こうした不具合の調査・復旧はもちろん、PHPやプラグインのバージョン管理、定期バックアップ、表示崩れの監視まで対応し、「突然のトラブル」が事業の手を止めないようサポートしています。更新が止まって困っている、運用を任せられる相手を探している、という方はお気軽にご相談ください。
Web・AI・セキュリティのお悩みは
GIV株式会社へご相談ください
「サイトをリニューアルしたい」「業務を自動化したい」
そんな課題を、技術とデザインの力で解決します。
まずはお気軽にお問い合わせください。