記事更新しようとすると、
更新に失敗しました。 返答が正しい JSON レスポンスではありません。
昨日までは問題がなかったのに、突然そんな表示が出てしまいお困りではありませんか?
このエラーが出てしまう原因は様々あり、これだと特定するのが難しいのが厄介なところ。
ただ、色々調べていると多くの人が解決に至った方法がわかりましたので、その対処法を5つご紹介いたします。
更新に失敗しました。 返答が正しい JSON レスポンスではありません。への対処法
エラー解決のために試してほしいことは5つ。
- プラグインの無効化
- .htaccessの設定
- WAF設定をオフに
- クラッシックエディタへ変更
- パーマリンクの変更
プラグインの無効化
このエラーが出てしまった場合、まずはプラグインを疑っていかれるといいでしょう。
プラグインやWordPress更新のタイミングなどで互いが干渉し、突然エラーが発生することがあります。
ネット上では、「WP External Links」が悪さをしていた報告が多く上がっています。
このプラグインを入れている場合、一度こちらを無効化してエラーが消えるかご確認ください。
もしエラーが消えた場合、WP External Linksの使用を諦め、プラグインを使わずに外部リンクを設定されるといいでしょう。
プラグインを使わずにnofollowタグを設定する方法は、以下の記事をご覧ください。
それでも効果がない場合、手間ではありますが一つ一つプラグインを無効化していき、プラグインに原因がないかを確認していきましょう。
.htaccessの設定
WordPressのルートにある、「.htaccess」の設定が変更されていないか確認していきます。
WebサーバーソフトウェアのApache(アパッチ)で、Webサーバーをディレクトリ単位で制御するためのファイルのこと。リダイレクトの設定やカスタム404ページの表示設定などが行えます。
ファイルを触った時に誤って一部の内容を変更してしまったか、もしくは何らかの要因で自動的に書き換わってしまうこともあるそう。(中にはファイルそのものが消えていたという報告も)
.htaccessファイルが正しく記載されているか、確認してみてください。
ちなみに、エックスサーバーの場合はファイルマネージャからファイルを見ることができます。
まずはファイルマネージャにログインし、対象のドメインを選択します。
「public_html」へ。
「.htaccess」→「編集」をクリック。
<IfModule mod_rewrite.c>に、最低限以下の内容が入っているか確認しよう。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^wp-signup\.php 404-siteguard [L]
RewriteRule ^wp-activate\.php 404-siteguard [L]
RewriteRule ^login_84772(.*)$ wp-login.php$1 [L]
</IfModule>
WAF設定をオフに
セキュリティの一つであるWAF設定が干渉しているケースもあるようです。
こちらをオフにするとエラーが解消されたご報告も。
エックスサーバーユーザーの方は、こちらの方法を参考にされてください↓
WAF設定が何かの解説やオフにする手順をご紹介していますよ。
クラッシックエディタへ変更
ブロックエディタがJSONと関連した動作をすることでエラーが起きることもあり、このケースではそもそもブロックエディタを使わないという対処法も。
ブロック→クラシックに変更される場合は、プラグインが便利です。
ただし、こちらのプラグインは近々サポートが終了することもあり、できればブロックエディタ継続が望ましいです。
クラシックは旧エディタになりますしね。
特に、SWELLやJINRのようなブロック対応で作られたテーマをお使いの場合、この対処法は積極的には推奨できません。
色々試してみて、それでもダメならという温度感でしょうか。
パーマリンクの変更
パーマリンクを変更することで、エラーが発生したという報告も。
この場合、パーマリンクを元に戻すことでエラーが消えた事例もあります。
「カスタム構造」でエラーが発生するという報告もあり、この場合「基本」で様子を見てみるといいでしょう。
ただし、パーマリンクの途中変更にはリスクもあるので注意しましょう。
それでもダメなら・・・
諸々試してもダメなら、一旦「エラーが出る前の状態に戻してしまう」というのも一つです。
WordPressの復元処理ですね!
復元したら、プラグインの自動更新をオフにしたり、WordPressやテーマの更新などについても慎重に。
エラー前~現在で何か設定を変更している場合、その変更によってエラーを引き起こしてしまった可能性も。
WordPressに変更を加えたい場合、それがエラーの原因にならないか一つ一つ確認していかれるといいでしょう。
また、復元処理をすると指定日~現在にかけて更新した内容は全てリセットされてしまうので、バックアップを取ってから行うようにしてください。
あとがき
「返答が正しい JSON レスポンスではありません」への対処法を5つご紹介しました。
まずは手軽にプラグインの無効化から試し、それでダメなら.htaccessファイルの確認ですね!
これと原因が突き止めにくいエラーではありますが(テーマとの相性などもありそう)、本記事の内容が何か参考になれば幸いです。
コメント