🔰はじめての方へ

【WordPress】オリジナルページを作成/投稿ができないときに確認するもの

記事内に広告が含まれています。
スポンサーリンク

WordPressの固定ページを使用し、テーマに依存しない新しいページを作成するために試行錯誤しています。

今回は、固定ページを使用してページを登録しようとしましたが

「公開に失敗しました。 返答が正しい JSON レスポンスではありません。」

というエラーが出て苦労したので、共有させてください!

前置き

私は子テーマを使用して作業を行っています。
子テーマで、オリジナルのページを作成するにあたって、functions.phpに追記をしているため、エラーが起きたので、その説明が中心となります。

オリジナルのページを作成する方法については、下記ページをご参照ください!

原因は functions.php

結論から申し上げますと、原因は functions.php にありました。

functions.php の書き方を少し間違えるだけで表示されなくなるのです。

ダメな例

<?php
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
  wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
  wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style')
);
}
?>

<!-- 採用LP用のヘッダー -->
<?php

WordPress の functions.php は「PHPファイル」なので、

?> で一度閉じてから HTML コメント (<!-- ... -->) を書いてしまうと、以降のPHPが正しく解釈されないのです!

なぜ問題になるか
  • ?> でPHPを終了した直後に HTML コメントが入っているため、その後の <?php ブロックが「別扱い」される。
  • これにより「ヘッダー送信済み」エラーや予期しない動作(固定ページ公開できないなど)が出やすい。
  • 特に functions.php では 閉じタグ ?> を書かないのがベストプラクティス です。
  • コメントは ///* ... */ のPHPコメントで書く

ここの修正で、固定ページを公開することができました!

エラーが続くときに試したいこと

PHPの書き方のエラーではない場合に、確認した方がいいことがあります。

1.「設定 → パーマリンク → 変更を保存」もう一度固定ページを保存

2.一般設定で URL が https になっているか確認

3.テーマをデフォルトに切り替えて公開テスト
→ 子テーマや独自テンプレートに問題がないか切り分け。
 私はここで、親テーマはエラーになっていないので、子テーマの影響だとわかりました!

4.ブラウザのキャッシュ・Cookie削除 → 再ログイン
(セッション切れでエラーになることがあります)

5.プラグインをすべて停止 → 公開テスト → 問題なければ1つずつ有効化
→ 特にセキュリティ系(SiteGuard, Wordfence, WAF)やキャッシュ系(LiteSpeed, WP Super Cache)が怪しいです。

他に考えられるエラー①パーマリンクの問題

パーマリンクの問題が多いようです。

管理画面 → 設定 → パーマリンク

何も変更せずに「変更を保存」をクリック

このパーマリンクは「投稿者名」の方がエラーが起きにくいようです。試してみてください!

他に考えられるエラー②サイトURLがズレている

管理画面 → 設定 → 一般

  • WordPress アドレス (URL)
  • サイトアドレス (URL)
    👉 この2つが正しいか確認。
    (例:https://example.com に統一。wwwhttp が混ざっているとエラーになる)

他に考えられるエラー③プラグインの干渉

特にセキュリティ系(Wordfence, SiteGuard など)やキャッシュ系(LiteSpeed Cache, W3TCなど)が REST API をブロックすることがあります。
👉 一時的に無効化して試す。

サーバー側(WAFやmod_security)がブロックしている

REST API の疎通確認のために、ブラウザで次のURLを開いてみてください:

https://(ドメイン)/wp-json/

「アクセスできません」や403/500エラーになる場合 → サーバー側(WAFやmod_security)がブロックしている可能性大。

JSONデータが出てくればOK(例: サイト名や投稿の情報が出る)。

こんな感じで色々トライアンドエラーを繰り返したらエラー解消しました!!

他にもオリジナルのページを作成するためにやったことなど公開しますので、参考にしていただければ幸いです!