公開日:
更新日:

【WPグーテンベルク】「返答が正しいJSONレスポンスではありません。」の解決方法のサムネイル画像

WordPressで記事を書いて更新する際、「更新に失敗しました。返答が正しい JSON レスポンスではありません。」とエラーが表示されて公開・更新ができなくなります。

このエラーはWordpressの新しいエディタ、グーテンベルクで起こります。
自分がハマったので解決方法をまとめます。

WordPressの環境

  • サーバー:lolipop
  • サーバー種類:apache
  • wordpressバージョン:5.7.2

解決方法

.htaccessに以下を記述

<IfModule mod_siteguard.c>
  SiteGuard_User_ExcludeSig ip(【ここに今のIPアドレスを記入】)
</IfModule>

今のIPアドレスはIPアドレス確認サイトから確認する。

複数のIPがある場合は新しい行を追加する。

# 例)
<IfModule mod_siteguard.c>
 SiteGuard_User_ExcludeSig ip(1.22.33.44)
 SiteGuard_User_ExcludeSig ip(2.33.44.55)
</IfModule>

原因

lolipopのサーバーのファイヤーウォール(WAF)に検知されてデータの更新がブロックされているようでした。

グーテンベルクのブロックエディタとWAFの相性が良くないようです。

lolipopの管理画面でブロックされたログを確認する方法

管理画面にアクセス→「セキュリティ」→「WAF設定」→「WAF検知ログ」のブロックされていた日付を選択

日付まで選択するとブロックしたログが一覧で表示されます。

複数のwifiを使っている場合、IPアドレスが変わるので、ログに表示される「アクセス元IP」をコピーして.htaccessに追記すると確実です。

その他の解決方法

Classicエディタを使う

グーテンベルクのブロックエディタが原因の元なので、wordpressバージョン5以前の馴染み深いエディタ、Classicエディタのプラグインを使用すると解決されます。
Classicエディタのプラグインページはこちら

ただし、Classicエディタはそう遠くない将来サポートされなくなるので、使えなくなる可能性があるのでおすすめしません。
https://azuki-rinrin.com/wp-classic-editor-support/

まとめ

  • 原因はサーバーのWAF
  • 解決方法は.htaccessに自分のIPのWAF除外設定をする
  • Classicエディタでも解決するが、おすすめしない