公開日:
更新日:
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エディタでも解決するが、おすすめしない