ワードプレスで保存すると「返答が正しい JSON レスポンスではありません」となり見出しが自動下書きとなる現象に対処

2020年3月27日

ワードプレスは今やホームページのツールとして一般化しています。
特に有名なブロガーさんほどワードプレスを利用されておられます。
かくいうこのブログもワードプレスです。

ある日、ワードプレスに書いた記事が保存できなくなる現象が発生しました。
記事が全く投稿できなくなり、焦りました。

いろいろ調べて対処できましたので、忘備録として記録いたします。

現象はこのような感じです。(公開に失敗しました。エラーメッセージ:返答が正しいJSONレスポンスではありません。)

ワードプレスで記事を入力し、保存してみたところ、以下のようなエラーになりました。

見たこともないエラーが発生しました。
(返答が正しいJSONレスポンスではありません)

そのまま一覧表示に戻ってみると、このような表示なっていました。

タイトルが「自動下書き」となっています。
さらに、中身を見てみると、

書き込んだテキストが空っぽになっていました。
何度保存しても、下書き保存、公開保存いずれもエラーなりました。

原因は.htaccessの不備

「JSON レスポンスではありません」というエラーは、ググってみるとワードプレス5.3以降発生しているようでした。

また原因も多岐にわたり、今回の原因が、必ずしも他の方の原因と一致しているとは言えない感じでした。

つまり「 JSON レスポンスではありません 」エラーの原因は多数ある。

ということです。

ググっても答えが見いだせなかったので、思い当たるところを一つずつ調べてゆきました。

すると、ひとつ気になるところがありました。
それがこの.htaccessの中身です。

.htaccessの中身が空になっていました。
wordplessの仮想フォルダなどは.htaccessを駆使して実現しています。
なのに、.htaccessが空欄になっているのはおかしいと感じ、テスト環境のwordplessの.htaccessと比較したところ、明らかに違っていました。

バックアップから.htaccessを手動で復元に戻して直りました。

.htaccessが空欄になっているということは、ワードプレスが誤動作するということです。

ひとまずテスト環境の.htaccessから内容を復元し、.htaccessに直接記述しました。

この状態で記事の保存を行いました。

無事記事が保存できるようになり、めでたしめでたしと思いきや、
この問題は.htaccessの記述だけでは解決していませんでした。

何日かしてまた記事が保存できなくなる現象が発生しました。

直った直ったと安心しきっていましたが、数日後またJSONレスポンスエラーが発生するようになりました。

そして.htaccessを見ると案の定空欄になっていました。手動で.htaccessを空欄にしていません。ということは・・・

ワードプレスが.htaccessを空欄にしている!
ということになります。

何か振り出しに戻った感がありましたが、気をお取り直して再度調べてみました。

ググりましたがさっぱりでした・・・・。

エラーが発生する前に、ワードプレスの何を操作したかを思い出しました。

ワードプレスに原因があることは間違いなさそうです。
ただ、何のタイミングで.htaccessの内容を消されてしまったかがわかりません。

もし定期的に.htaccessの内容が消えるようであれば、致命傷です。

そこで、エラーが発生する前に操作した内容をひとつひとつ洗い上げました。
それらを一つ一つ検証していったところ、原因を発見しました。

それがこちらです。

原因は、パーマリンク設定で.htaccessの内容が消えていました。

パーマリンク設定は、記事URLの形式を設定する機能です。
例えば、URLを日付のようにしたり、カテゴリ名のようにしたりなど、URLフォルダ名を変更することができます。

このパーマリンク設定で.htaccessが消えるものがありました。

それがこちらです。

パーマリンクを基本で保存すると、.htaccessの中身が消えました。
どうやら、ワードプレスの不具合のようです。

ちなみに、パーマリンクを他の項目で保存したらどうなるかも試してみました。

基本以外で保存すると、.htaccessが正しく設定されました。
どうやら、カスタム構造の入力欄に、何かしら値が入っていると大丈夫のようです。

記事保存ができず「自動下書き」になるようならばパーマリンクの設定の確認を

ワードプレスでも現象の発生するものと、発生しないものがありましたが、違いはパーマリンク設定でした。

現象のでるワードプレスは、パーマリンクが「基本」になっていました。

テスト環境で試しても、同様に.htaccessの中身が空欄になったので、再現性はかなり高いです。

もし同様の現象が発生しているようならば、パーマリンクが基本になっていないか確認し、もし基本になっているならば、基本以外に設定してみるとよいです。

検証したワードプレスは5.3.2です。
現時点では最新のバージョンのため、どの環境でも現象が発生する可能性があります。

サーバーによっては発生しない場合もあるかもしれませんが、さくらサーバーでは現象が発生しました。

おそらくワードプレスの以降のアップデートで改善されると思いますが、しばらくはパーマリンクを「基本」以外に設定です。

追記:2020/3/27

本日同じ環境で再検証したところ、 特になにもしていませんが現象が改善していました。

本記事は実際に起こったことを後日、スクリーンショットをとることも兼ねxamppで新たに環境を作成し、再現検証を行っております。

本日検証に使ったxampp環境を起動したところ、何か通信をしているような様子が見られました。(WPバージョンはそのまま)
その後同じ操作をしたところ現象が再現しなくなっていました。

また新たにクリーンインストールも試しましたが、現象は発生しませんでした。
ちなみに、.htaccessが空欄であっても、記事保存時に「JSON レスポンスエラー」は発生しませんでした。

ワードプレスの仕様では、パーマリンクの基本設定で.htaccessが空欄になること自体は正しい動作のようです。ただ、.htaccessが空欄の時に「JSONレスポンスエラー」になることが問題であったようです。

結局何が原因だったのか、再現しなくなったため不明です。
ただ検証のためだけに準備した環境で、今回プラグイン等は検証時のままでテストしました。つまりプラグインの問題ではありません。

何か新しいことが判明したら、ブログで報告できればと思います。

今回は原因が二重にありなかなか手ごわかったです。

直接の原因は.htaccessが空欄であったことでした。
ただ、そこで安心してしまい、本当の原因を突き止め切れていませんでした。

この段階で気づくべきでした。
なぜ.htaccessが空欄になっていたのだろうか?と

今回のことで、ワードプレスは.htaccessの書き換えも行っているということを知りました。まだまだ学ぶべきことが多々あります。

本記事がまたお役に立てば幸いです。

今回のレポートは以上です。
読んでいただいてありがとうございました。


ホームページに関するお悩み事やご相談事がございましたら私どもまでご連絡ください。 鋭意ご対応申し上げます。
ホームページのご提案もさせていただいております