WordPressで投稿を作成して「下書き保存」or「公開」をクリックしたら、公開に失敗しました。 返答が正しい JSON レスポンスではありません。と表示されて下書きと公開ができない。
この表示が出た場合「下書き保存」or「公開」ができないので、この状態を自身が解決した方法について解説します。
※原因はその時の環境やファイル構成によってことなります。
ドメイン直下ディレクトリのファイル確認
ドメイン直下ディレクトリに.htaccessとindex.phpのファイルがないと投稿を「下書き保存」or「公開」することができません。
※ドメインにフォルダを挟んでディレクトリにWPインストールしている場合の参考例です、cmsフォルダ(例)
▪2つのファイルがない場合⇩ ※NG
▪2つのファイルがある場合⇩ ※OK
.htaccessファイル
▪.htaccessの中のコードは下記の記述にします。
<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>
▪.htaccessコードイメージ画像⇩
index.phpファイル
ルートディレクトリにフォルダを挟んでない場合はcmsの部分は不要。
※require __DIR__ . ‘/wp-blog-header.php’;でOKです。
▪index.phpの中のコードは下記の記述にします。
<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define( 'WP_USE_THEMES', true );
/** Loads the WordPress Environment and Template */
require __DIR__ . '/cms/wp-blog-header.php';
▪index.phpコードイメージ画像⇩
以上の対応で再度、WordPress管理画面の投稿で「下書き保存」or「公開」をクリックして、問題なく保存できればOKです。
まとめ
ルートディレクトリには必ず.htaccessとindex.phpのファイルが必要になり、指定方法が間違っていた場合にうまく機能しないので、中のコードが問題ないか確認しましょう。
上記でドメイン直下のディレクトリに一つファイルを入れてWordPressインストールする方法について詳しく解説している記事もあるので、セキュリティ対策としてサブディレクトリにWordPressをインストールする方法も合わせて対応してみてください。