WordPressで「更新に失敗しました。 返答が正しい JSON レスポンスではありません。」
WordPressで固定ページを作成して下書き保存したら「更新に失敗しました。 返答が正しい JSON レスポンスではありません。」というエラー表示がされて、タイトルが「自動下書き」の固定ページが勝手に作成されました。すでに作成済の固定ページを更新しても同じエラーが発生して下書きになってしまいます。
目次
動作環境
WordPress:5.8
テーマ:Xeory Extension
レンタルサーバー:ConoHa WING
エラーが発生する事象
- 新規で固定ページを作成して「下書き保存」及び「公開」を実行したら「更新に失敗しました。 返答が正しい JSON レスポンスではありません。」というエラーが発生。
- 固定ページの一覧を確認すると勝手に「自動下書き」という下書きページが作成されている。
- 「自動下書き」ページは開けるが、下書き保存でも公開でもエラーは発生する。
原因(パーマリンク設定)
「更新に失敗しました。返答が正しいJSONレスポンスではありません。」をネットで検索してみると、パーマリンク設定を変更したら発生したという情報がありました。
確かにパーマリンク設定を変更した記憶があります。
- エラー発生前にパーマリンク設定を「基本」から「カスタム構造」に変更しました。
- それではパーマリンク設定を「カスタム構造」から「基本」に戻してみます。
- パーマリンク設定を元に戻したら、エラーで下書きになっていた固定ページが公開できました。
原因はパーマリンク設定を変更したからのようです。しかし、これでは解決とは言えません。
パーマリンク設定を色々と変更してみましたが「カスタム構造」だけがエラーになります。本当はこの設定に変更したいのですが・・・
原因(.htaccess)
もう一つ原因としてあげられていたのは「.htaccessのファイルの中身が空欄になってしまう」という記事がありました。確認しようと「.htaccess」ファイル を「ConoHa ファイルマネージャー」で探してみましたがファイルがありません。もしかして消えた?
他のサイトを確認するとサイトのフォルダ直下に「.htaccess」ファイルがありましたので、コピーしてみたらエラーが発生しなくなりました。
「.htaccess」ファイルの中身は以下の通りです。
# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
.htaccessとは?
「.htaccess」(ドットエイチティーアクセス)とは、WebサーバーソフトウェアのApache(アパッチ)で、Webサーバーをディレクトリ単位で制御するためのファイルのことです。リダイレクトの設定やカスタム404ページの表示設定などが行えます。
まとめ
私の場合は「.htaccess」ファイルが存在しなかったのが原因でした。WordPressをインストールした時点から存在しなかったのか、途中で削除されてしまったのか、はっきりとした原因は不明です。
今回エラーが発生したテーマは「Xeory Extension」でした。「Lightning」では発生したことがなかったので、テーマの相性もあったのかもしれません。
「更新に失敗しました。 返答が正しい JSON レスポンスではありません。」が発生した場合は、まず一番に「.htaccess」ファイルを確認しましょう。