ワードプレス

公開に失敗しました。 返答が正しい JSON レスポンスではありません。(エラー対応)【WordPress】

WordPressで投稿を作成して「下書き保存」or「公開」をクリックしたら、公開に失敗しました。 返答が正しい JSON レスポンスではありません。と表示されて下書きと公開ができない。

JSONレスポンスではありません。
JSONレスポンスではありません。

この表示が出た場合「下書き保存」or「公開」ができないので、この状態を自身が解決した方法について解説します。

※原因はその時の環境やファイル構成によってことなります。

ドメイン直下ディレクトリのファイル確認

ドメイン直下ディレクトリに.htaccessindex.phpのファイルがないと投稿を「下書き保存」or「公開」することができません。

index.phpと.htaccess
index.phpと.htaccess

ドメインにフォルダを挟んでディレクトリにWPインストールしている場合の参考例です、cmsフォルダ(例)

▪2つのファイルがない場合⇩ ※NG

cmsフォルダ
ファイルがない場合

▪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コードイメージ画像⇩

.htaccess
.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コードイメージ画像⇩

index.php
index.php

以上の対応で再度、WordPress管理画面の投稿で「下書き保存」or「公開」をクリックして、問題なく保存できればOKです。

まとめ

ルートディレクトリには必ず.htaccessindex.phpのファイルが必要になり、指定方法が間違っていた場合にうまく機能しないので、中のコードが問題ないか確認しましょう。

上記でドメイン直下のディレクトリに一つファイルを入れてWordPressインストールする方法について詳しく解説している記事もあるので、セキュリティ対策としてサブディレクトリにWordPressをインストールする方法も合わせて対応してみてください。

URL変更アイキャッチ画像
ドメイン直下のディレクトリに一つファイルを入れてWordPressインストールする方法【セキュリティ対策】【URL変更】サイトにWordPressをインストールする前にWordPressフォルダの上の階層に一つフォルダを入れることによってサイトセキュリティを高めることができます。...