「更新に失敗しました。返答が正しいJSONレスポンスで…。」でWordPressが更新できない時の対処方法

「更新に失敗しました。返答が正しいJSONレスポンスで…。」でWordPressが更新できない時の対処方法

お客様のサーバー(Zenlogic)にWordPressのホームページを組み上げて記事を更新しようとしたところ、「公開に失敗しました。返答が正しいJSONレスポンスではありません。」というエラーが表示されて更新ができませんでした。

JSONでの保存処理のエラーのため、ブロックエディターが問題です。

このエラーを解決する方法をご紹介します。

【応急処置】WordPressの管理画面だけで対処する方法

「今すぐにでも更新したい!」と、手っ取り早くJSONレスポンスエラーを回避されたい方もいらっしゃるかと思います。

すぐに更新をされたいという方は、Classic Editorのプラグインをインストール・有効化してください。

記事をClassic Editorで編集することで、更新が可能となります。

理由はJSONでの保存処理のエラーのため、ブロックエディターが原因だからです。

この方法で解決した場合、プラグイン「Table of Contents Plus」または「Easy Table Contents」で作成した目次で不具合が生じることがあります。
この場合、新規追加した記事に内容をコピーして記事を作り直すことで対処できます。

【解決策】.htaccessを編集する

こちらの方法で完全解決に至ったので、解決策をご紹介します。

FTPもしくはファイルサーバーにて「.htaccess」を編集します。

編集内容は以下の通りです。

.htaccessの最後に次のコードを追加します。

#ブロックエディターのエラー対策 start--------
<IfModule mod_siteguard.c>
  SiteGuard_User_ExcludeSig ip(***.***.**.*)
</IfModule>
#ブロックエディターのエラー対策 end--------


更なるエラーの回避のため、上記のようにコード追加後に改行を3行程度入れておいてください

ip()内の***については、安全な確認くんの「現在接続している場所(現IP)」に入力されている自分のグローバルIPアドレスを入力してください。

安全な確認くんの確認画面

グローバルIPアドレスは定期的に変更されるため、再設定が必要です

グローバルIPアドレスが変更される都度、追記した「.htaccess」のIPアドレスを変更する必要があります。

なぜなら一般的なプロバイダー契約の場合、固定IPアドレスではないので定期的にIPアドレスが変更されるからです。

再発する場合は、改めて「安全な確認くん」で「現在接続している場所(現IP)」が変わっていないか確認しましょう。

IPアドレスの変更があった場合は、.htaccessファイルに追記したIPアドレスの部分だけを更新してください。

⇨SiteGuard_User_ExcludeSig ip(***.***.**.*)の***の部分のみ変更が必要です。

Site Guardのプラグインは関係ありません

#ブロックエディターのエラー対策 start--------
<IfModule mod_siteguard.c>
  SiteGuard_User_ExcludeSig ip(***.***.**.*)
</IfModule>
#ブロックエディターのエラー対策 end--------


上記を追加するコードとしてご案内しました。

SiteGuardという記述があることから、「SiteGuardWP Pluginが原因なのでは?」と、こちらのプラグインを無効にする方がいらっしゃるかもしれません。

ですがこの方法では解決できませんので、ご注意ください。

不具合が発生した背景

最後に、この不具合が発生した環境をご紹介します。

レンタルサーバーZenlogic
WordPressのバージョン5.7
使用しているテーマSnow Monkey
プラグイン全て無効にしても解決されなかった

「同じ環境じゃないからこの解決方法は合わないかも」と思わずに、ぜひ試してみてくださいね。