wordpress

返答が正しいJSONレスポンスではありませんの表示

ワードプレスで記事を「下書き」にしたら、タイトル入力の上の方に「返答が正しい JSON レスポンスではありません」と出ました。

記事保存のときに「返答が正しい JSON レスポンスではありません」と出て、タイトルは「自動保存」になっている!

ワードプレスで新規投稿をしようと、タイトルだけ入力し、まずは「下書き」にしたら、タイトル入力の上の方に「返答が正しい JSON レスポンスではありません」と出ました。

このような赤い帯で、少々驚きました。

返答が正しい JSON レスポンスではありません

ちなみに、私の場合ですが、この画面が出るのは「グーテンブルグ」だけで、「クラシックエディタ」に表示を変えたら保存もできました。

調べたらどうやら「.htaccess」が原因のようでした。

うーん。そういえば、サイトヘルスに「推奨セキュリティヘッダーがインストール済みではありません」というような表示が出て、.htaccessをいじったような気がするので、そのせいかもしれない・・と思い確認。

.htaccessを編集したのは、「All in One SEO 」の機能で「.htaccess Editor」というのがあって、そこから改編したと思います。

調べたところ、中に入っているコードは

# Security Headers
Header always set Strict-Transport-Security: "max-age=31536000" env=HTTPS
Header always set Content-Security-Policy "upgrade-insecure-requests"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Header always set Expect-CT "max-age=7776000, enforce"
Header always set Referrer-Policy: "no-referrer-when-downgrade"
Header always append X-Frame-Options SAMEORIGIN
# End Security Headers

これのみで、セキュリティーヘッダーに関するものだけ。

実はこのとき、以前の内容のバックアップがなく、エラーが出る前のものが手元になかったのですが、「.htaccess」といえば「パーマリンク」

なので、一度管理画面からパーマリンクの設定を「保存」しました

慌てずまず、パーマリンクを一度保存してみよう!

再度、「.htaccess」を見てみると、

# Security Headers
Header always set Strict-Transport-Security: "max-age=31536000" env=HTTPS
Header always set Content-Security-Policy "upgrade-insecure-requests"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Header always set Expect-CT "max-age=7776000, enforce"
Header always set Referrer-Policy: "no-referrer-when-downgrade"
Header always append X-Frame-Options SAMEORIGIN
# End Security Headers
# 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

と変更されていました。

# BEGIN WordPress

から以下が追加されていることが分かります。

この状態で記事をグーテンブルグで開きましたら、ビンゴ!

それ以降、エラー画面は出ませんでした。

なにかしらが原因で、どうも「.htaccess」に必要なコードまでも消してしまったのかもしれません。

最近「.htaccess」に関するエラー事が多くて、なかなか厄介なやつですね^^;

もし、上記で直らなければ、新規にワードプレスを同じサーバーに入れてデフォルト状態からコードをコピペしてやり直すのが良いと思います。

手動で諸々いじっていたら、全部の修正はできませんが、少なからず記事が投稿できない、という状況からは脱することができるはずです。

やはり、何かするときはバックアップが大切、と思い知らされる出来事でした。

-wordpress