WEBデザイン wordpress

WordPress「更新に失敗しました」を解決した話

考える人

wordpressで記事更新時に「更新に失敗しました」と表示され更新できないのを解決したときのメモ。

結論から書くとさくらサーバーの常時SSLプラグイン( SAKURA RS WP SSL )したのにWordpress一般設定がhttp://のままだったのが原因みたい。

WordPress「設定」→「一般」の

・ WordPress アドレス (URL)
・ サイトアドレス (URL)

この2つに入力されているURLが「http://」だったのを「https://」に変更したら、無事更新されるようになりました。

環境

リモート

さくらのレンタルサーバー
php7系
wordpress5.3系
投稿にはGutenbergを使用

ローカル

OS:Windows10
ブラウザ:chrome

経緯

・お客さんのWPサイトで固定ページを保存しようとしたら「更新に失敗しました」となり更新できない。
・前日までは更新できていた。
・直前に「Contact-form-7」をインストール、有効化した。

Contact-form-7 を削除しても 「更新に失敗しました」 事象は変わらず。

原因特定

・Firefox Edgeでも同様の 「更新に失敗しました」 が発生
・Chromeキャッシュや履歴を全部消しても 「更新に失敗しました」
・Macbook Airで確認しようとしたらなぜかネットに繋がらず(汗)※Macの不具合は今は無視
・iPhone Safariで更新したら成功!

更新はできるのでサーバー側の原因ではない。

やってみたこと

・Wordpressのバージョン更新(事前にWordpressバックアップは必須)

※Wordpress更新したら「Warning: Cannot modify header information」ってエラーメッセージが表示されるようなってしまった!
 →さくらサーバーコントロールパネルからphp.iniの設定で「output_buffering = On」を書いて保存→解決
※「更新に失敗しました」 のエラーメッセージが「更新に失敗しました。 エラーメッセージ: 返答が正しい JSON レスポンスではありません。」にアップグレード。

・php.ini の設定

max_execution_time upload_max_filesize post_max_size とかの値を増やすといいとかネットの情報があり、一応やってみるけど、エラーは変わらず。
iPhoneで更新できてるので、やっぱサーバー設定ではないですよね、元に戻しました。

・Classic Editorにしてみる

Classic Editorプラグインを入れて旧エディターでなら更新できた。
しかし要件としてGutenberg必須なので却下

・そういや先日常時SSL化に対応したなあ

.htaccessで http://→https:// のリダイレクト設定追加して、さくらサーバー専用のWPプラグイン( SAKURA RS WP SSL )を有効化したなあ。
でもプラグイン停止しても変わらない。

んで、ふと「あれ?一般設定のとこってどうなってたっけ?」と思って見てみたら「http://」のまんま。

なのでとりあえず「https://」に修正したら、更新できるようになった!という話。

原因の推測とか憶測とか

お客さんのWordpressで本番公開目前の状態なので、原因特定のためにまたいろいろいじりたおすのは怖いので、これまでの経緯から原因を憶測で言うと、

たぶん

常時SSL化対応したのに、wordpressのURLの設定が非SSLだったから更新のときに「おかしいんとちゃうん?」ってWordpressが受け付けなかった?
もしくは、なぜか非SSLで繋がってて「httpなの?httpsなの?」っていういろいろ不整合がおきてて更新できなかった?(確認するために設定戻すのは怖い)

こんな感じかも。

-WEBデザイン, wordpress

Copyright© MDBloG , 2020 All Rights Reserved Powered by AFFINGER5.