タグアーカイブ Twenty Twenty-Four

WordPressで更新に失敗しました サーバーから有効な応答を取得できませんでしたと出る時の対処法

WordPressで更新に失敗しました サーバーから有効な応答を取得できませんでしたと出る時の対処法

ブロックエディターで「更新に失敗しました。サーバーから有効な応答を取得できませんでした」と表示されて固定ページや投稿を保存できない場合、原因はエディターとサーバー間をつなぐREST APIの通信エラーだ。パーマリンク設定の再保存とWordPressアドレス、サイトアドレスの一致確認から始めると解決できることが多い。

なぜ「更新に失敗しました」と表示されるのか 原因を切り分ける

なぜ「更新に失敗しました」と表示されるのか 原因を切り分ける

編集画面でこのエラーが出るとき、書いた内容がサーバーに届いていない。ブロックエディターは保存処理をREST API(レストエーピーアイ / エディターとサーバーがデータをやり取りする仕組み)経由で実行する。この通信が通らなければ「有効な応答が取得できない」状態になる。原因として多いのは次の4つだ。

  • パーマリンク設定の乱れ(書き換えルールの不整合)
  • WordPressアドレスとサイトアドレスの不一致(httpとhttpsの混在など)
  • WAF(ウェブアプリケーションファイアウォール)による /wp-json/ の遮断
  • サーバー側のPHP設定やメモリ上限による処理停止

Twenty Twenty-Fourなどのブロックテーマを使い、プラグインを入れていない環境でもこのエラーは発生する。テーマやプラグインの競合だけに原因を絞らず、サーバーとエディターの通信経路を疑うのが最短の解決につながる。

「ブラウザーに保存されたバックアップが現在の内容と異なる」というメッセージが出る場合も、保存処理自体が失敗していることを示す副次的な症状だ。バックアップを復元しても保存に失敗するのは、エディターからサーバーへの通信が断たれているためである。

STEP 1 パーマリンク設定を開いて保存する
設定>パーマリンクから「投稿名」を選び「変更を保存」を押す。書き換えルールが再生成される
↓
STEP 2 2つのアドレスの一致を確認する
設定>一般で「WordPressアドレス」と「サイトアドレス」が完全に一致しているか確認する
↓
STEP 3 サイトヘルスでREST APIを診断する
ツール>サイトヘルスで「REST APIでエラーが発生しました」の表示を確認する
↓
STEP 4 サーバー側の遮断を確認する
REST APIエラーがある場合、WAFが /wp-json/ への通信を遮断している可能性がある
■ 基本対処 ■ 設定確認 ■ 診断 ■ サーバー側

上から順に確認すると原因を特定しやすい。次から各手順を詳しく見ていく。

最初に試すのはパーマリンク設定の再保存

最初に試すのはパーマリンク設定の再保存

管理画面の「設定」→「パーマリンク設定」を開き、「投稿名」を選択した状態で「変更を保存」を押す。見た目上は何も変わっていなくても、内部の書き換えルールが再生成されてREST APIの経路が修復されることがある。「昨日まで普通に保存できていたのに急にエラーになった」という場合の定番対処だ。

パーマリンク設定の画面に「.htaccessを更新できません」という趣旨のメッセージが表示されていれば、サーバー上の .htaccessファイルの書き込み権限を確認する必要がある。FTPまたはサーバー管理画面のファイルマネージャーで権限を確認し、必要なら664や666に変更してから再度保存を試す。

WordPressアドレスとサイトアドレスの一致を確認する

WordPressアドレスとサイトアドレスの一致を確認する

「設定」→「一般」を開くと「WordPressアドレス (URL)」と「サイトアドレス (URL)」の2つの欄がある。この2つが完全に一致していることを確認する。特にhttpとhttpsが混在している、片方だけサブディレクトリが付いている、といった不一致があると保存処理が失敗しやすい。

ここで重要なのは、この2つの欄を管理画面から安易に変更してはいけないという点だ。間違えて変更すると、サイト全体と管理画面にアクセスできなくなることがある。値が食い違っているのを見つけても、すぐに手を加えず、次の復旧方法を読んでから作業するのが安全だ。

サイトヘルスでREST APIエラーを特定する

サイトヘルスでREST APIエラーを特定する

「ツール」→「サイトヘルス」を開き「REST APIでエラーが発生しました」という表示を探す。この表示が出ていれば、サーバー側のファイアウォール(WAF)が /wp-json/ への通信を遮断している可能性が高い。レンタルサーバーの管理画面からWAF設定を一時的に無効にするか、サーバー会社に問い合わせて「/wp-json/ へのリクエストがブロックされていないか」を確認する。

サイトヘルスにエラーが出ていない場合でも、通信が不安定なケースはある。ブラウザーの開発者ツールで「ネットワーク」タブを開き、保存ボタンを押したとき /wp-json/ へのリクエストが403や500になっていないかを確認する方法も有効だ。ここで明確なステータスコードが出れば、サーバー会社に伝える情報として使える。

サイトアドレスを変更してサイトが開けなくなった時の復旧

サイトアドレスを変更してサイトが開けなくなった時の復旧

「WordPressアドレス」と「サイトアドレス」の値を管理画面から変更したあと、サイトも管理画面も開けなくなることがある。この状態はwp-config.phpまたはデータベースから直接修正すれば復旧できる。まずはwp-config.phpに定数を追記する方法が簡単だ。

wp-config.phpに定数を追記して復旧する

FTPまたはサーバー管理画面のファイルマネージャーでwp-config.phpを開き、以下のコードを追記する。example.comの部分は実際の独自ドメインに置き換える。

define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );

この2行を追記すると、データベースに保存された値より優先してWordPressがURLを認識するようになる。管理画面に再ログインできたら「設定」→「一般」で正しい値を入力し、追記した2行を削除する。

phpMyAdminからオプション値を直接修正する

wp-config.phpを編集できない環境なら、phpMyAdminでwp_optionsテーブルを開き、siteurlとhomeの2つのオプション値を正しいURLに直接変更する。こちらも修正後に管理画面へアクセスできるようになる。

Beforeアドレスを誤って変更
サイトアドレスの欄を編集した直後、管理画面もサイトも「ページを開けません」と表示される
↓
After wp-config.phpで復旧
WP_HOMEとWP_SITEURLを追記したら管理画面に再ログインでき、設定を正しい値に戻せる
■ 誤変更直後 ■ 復旧後

誤ったアドレス変更をしても、ファイルまたはデータベースから正しい値を戻せばサイトは復旧する。慌てずどちらかの方法を試す。

ブロックテーマのテンプレートとヘッダー警告への対応

ブロックテーマのテンプレートとヘッダー警告への対応

Twenty Twenty-Fourはブロックテーマなので、固定ページのレイアウトはすべてテンプレートで決まる。新しいページを追加したときに同じテンプレートが自動適用されるのは仕様であり、異常ではない。エディター右側の設定サイドバーを開き、「ページ」タブにある「テンプレート」プルダウンで別のテンプレートに切り替える。「タイトルなし」や「ブランク」などの選択肢が用意されている。

「ヘッダーが削除されました」という警告は、テンプレートパーツのヘッダーが編集されて整合性が取れなくなっている状態を示す。テンプレートパーツ内のタイトルを直接編集した場合などに起きやすい。「外観」→「エディター」→「パターン」→「テンプレートパーツ」→「ヘッダー」を開き、三点メニューから「リセット」を選ぶと初期状態に戻る。この操作でテンプレートパーツの問題は解消する。

よくある質問

パーマリンク設定を再保存しても直らない場合はどうすればよいか

次にWordPressアドレスとサイトアドレスの一致を確認する。それでも直らなければサイトヘルスでREST APIのエラーを調べ、WAFによる遮断がないかサーバー会社に問い合わせる。

サイトヘルスに「REST APIでエラーが発生しました」と表示されたら

サーバー側のファイアウォールが /wp-json/ への通信を遮断している可能性が高い。レンタルサーバーの管理画面でWAF設定を確認するか、サーバー会社に /wp-json/ へのブロック解除を依頼する。

サイトアドレスを間違えて変更して管理画面に入れなくなった

wp-config.phpにWP_HOMEとWP_SITEURLの定数を追記して強制的に正しいURLを指定する。FTPが使えない場合はphpMyAdminからwp_optionsテーブルのsiteurlとhomeを修正する。

ブロックテーマで固定ページごとに違うレイアウトにする方法

エディター右側の設定サイドバーを開き、「ページ」タブの「テンプレート」プルダウンからページごとに別のテンプレートを選ぶ。Twenty Twenty-Fourには複数のテンプレートが標準で用意されている。

「ヘッダーが削除されました」という警告の直し方

外観>エディター>パターン>テンプレートパーツ>ヘッダーを開き、三点メニューから「リセット」を選ぶ。テンプレートパーツが初期状態に戻り、警告は消える。

この記事のポイント

  • 保存エラーの主因はエディターとサーバーをつなぐREST API通信の失敗
  • 最初にパーマリンク設定を再保存して書き換えルールを修復する
  • WordPressアドレスとサイトアドレスの一致を確認し、安易に変更しない
  • 誤ってアドレスを変更して開けなくなったらwp-config.phpで復旧する
  • ブロックテーマのテンプレート切替とテンプレートパーツのリセットでレイアウトを整える