『公開に失敗しました。 返答が正しい json レスポンスではありません。』 – WordPressでのエラーについて

記事をアップロードしようと更新を押下したところ画像のようにエラーが表示され記事を公開できなくなりました。ログを確認したところ.htaccessファイルの破損が原因でした。


- /wp-admin
- /wp-content
- /wp-includes
- .htaccess  ←このファイル
- index.php
- license.txt
- readme.html
- wp-activate.php
- wp-blog-header.php
- wp-comments-post.php
- wp-config-sample.php
- wp-config.php
- wp-cron.php
- wp-links-opml.php
- wp-load.php
- wp-login.php
- wp-mail.php
- wp-settings.php
- wp-signup.php
- wp-trackback.php
- xmlrpc.php

このファイルを元に戻すことで更新ができるようになりました。.htaccessをもとに戻すには管理画面からパーマリンクを更新すると自動生成されます。

htaccessファイルを元に戻す

前提として上記のディレクトリ階層に.htaccessファイルがあることを確認してください。ない場合は新しく作成してください。ファイルの中身は空っぽで大丈夫です。こちらの中身は下記の工程で動的に生成されます。もしパーマリンク構造が【基本】であれば下記のコードを.htaccessにペーストすれば投稿の更新はできるようになるかと思います。


# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。

# END WordPress

管理画面を開き【設定】→【パーマリンク】にアクセスし、元々ご自身が設定していたパーマリンク構造に設定し変更を保存します。保存すると.htaccessファイルが更新され、投稿も復旧するかと思います。

Apachの問題も

.htaccessファイルはWordPress側で動的に書き込みできるようになっています。もし上記の設定で更新されない場合はApach側の問題もあるかもしれません。apache/conf/httpd.confファイルのLoadModule rewrite_module modules/mod_rewrite.soが有効になっているか確認をしてみてください。こちらがオフになっているとWordPress側でのパーマリンク設定の更新ができなくなります。

LoadModule rewrite_module modules/mod_rewrite.so

参考文献