2026年5月20日

2026年5月20日

WordPressの設定画面で「変更を保存できません」が出る場合の解決方法

はじめに

WordPressの設定画面(一般・表示・ディスカッションなど)で「変更を保存できません」または「申し訳ありませんが、このフォームの送信は許可されていません」と表示されることがあります。保存できない原因は主にnonceの問題・ユーザー権限・セキュリティプラグインのブロックの3つです。

症状・原因

  • 「申し訳ありませんが、このフォームの送信は許可されていません」:nonceの検証失敗
  • 保存後にリダイレクトが繰り返される:URLがHTTP/HTTPSで不一致
  • 設定画面が白い画面になる:PHPエラーまたはメモリ不足
  • 一部の設定だけ保存されないsanitize_option フィルタのバリデーション失敗

解決手順

ステップ1:キャッシュとCookieをクリア

まずブラウザのキャッシュとCookieを削除してから再試行します。nonceはセッションに紐づくため、古いCookieが残っていると検証に失敗します。

# WordPressのオプションキャッシュもクリア
wp cache flush

ステップ2:ユーザー権限を確認

設定を保存できるのは manage_options 権限を持つユーザーのみです。

// 現在のユーザーが権限を持つか確認
if ( current_user_can('manage_options') ) {
    // 設定保存処理
}

管理者アカウントで再ログインし、ユーザーの役割が「管理者」になっているか確認してください。

ステップ3:プラグインを無効化してテスト

セキュリティプラグイン(Wordfence・Sucuri)やキャッシュプラグインがフォーム送信をブロックしている場合があります。

# すべてのプラグインを一時無効化
wp plugin deactivate --all

プラグインを無効化して保存できた場合は、1つずつ有効化して原因を特定します。

ステップ4:.htaccessを確認

mod_securityやカスタムルールがPOSTリクエストをブロックしていることがあります。

# .htaccess に追加(一時的なテスト用)
<FilesMatch "options.php">
    SecFilterEngine Off
</FilesMatch>

根本解決はmod_securityのルール調整をサーバー管理者に依頼するか、VPSであれば該当ルールを無効化します。

ステップ5:wp-config.phpのURL設定を確認

// サイトURLが一致しているか確認
define('WP_HOME',    'https://example.com');
define('WP_SITEURL', 'https://example.com');

HTTPとHTTPSが混在するとリファラーチェックが失敗し、nonce検証が通りません。

ステップ6:functions.phpでnonceの寿命を延長(応急処置)

// nonce有効期間をデフォルト24時間から延長
add_filter('nonce_life', function() {
    return 48 * HOUR_IN_SECONDS;
});

これは応急処置です。根本原因(サーバー時刻のずれなど)を別途確認してください。

注意事項

  • DISALLOW_FILE_MODS=true の場合、プラグイン・テーマの更新設定は保存できません(仕様)
  • サーバー時刻がずれていると nonce の有効期限判定がおかしくなります(date コマンドで確認)
  • バックアップなしに .htaccess を編集するとサイトがダウンする場合があります

まとめ

設定保存エラーは、まずキャッシュ・Cookie削除 → 権限確認 → プラグイン無効化の順で切り分けます。セキュリティプラグインが原因の場合は該当ルールのホワイトリスト設定で解決できます。

お気軽にご相談ください

お見積りへ お問い合わせへ