WordPressのカスタマイズ方法やプラグインレビューを中心に、パソコン/動物/植物のことなどを紹介するホームページです
The plugin or theme edit says "Something went wrong. Your changes may not have been saved. You can also fix it manually and upload the file via FTP." Causes and countermeasures when not possible

プラグインやテーマ編集で「何かうまくいかなかったようです。変更が保存されていないかもしれません。手動で修正し、FTP 経由でファイルをアップロードすることもできます。」と表示されて更新できないときの原因と対処

公開日:2017年12月3日 使い方など

WordPressのバージョンが4.9になり、テーマやプラグインの編集画面がハイライト表示になりました。加えて更新時に構文のチェックが入り、エラーがあると「〇〇行のコードが・・・」と表示され更新できないようになりました。これによっていわゆる【エラーで画面が真っ白になる】という現象がほぼなくなるため、画面真っ白で頭が真っ白・・・となる心配が少なくなりました。

それはそれでいい機能なのですが・・・

セキュリティ面のことなどがあるためバージョンが更新されたときには必ずアップデートするようにしているので、いつも通り4.9に更新しました。そしてテーマファイルをカスタマイズする機会があったので実際に開いてみたら「まあ!なんて見やすくなったの?」というのが第一印象、行番号が表示され、特定コードに色が付き、エラーの疑いがある行はマークが付いたりして本当に使いやすくなったと思います。

でも問題が・・・

カスタマイズが終わり、【更新】ボタンを押した時です。更新にすごく時間がかかった挙句に表示されたのは

「何かうまくいかなかったようです。変更が保存されていないかもしれません。手動で修正し、FTP 経由でファイルをアップロードすることもできます。」

前々からWordPressの日本語の翻訳、特にエラーメッセージなどは何??と思うことも多かったのですが、今回のはお手上げです!だって「何かうまくいかなかった・・・」、何かって何だ~~~!!と思わずつぶやいてしまいました。

でいろいろ調べるうち、ある種の対策をすることで更新できるようになりました。これですべてという訳ではありませんが、同じエラーが出た方の参考になればと思います。

「何かうまくいかなかったようです。変更が保存されていないかもしれません。手動で修正し、FTP 経由でファイルをアップロードすることもできます。」と表示されて更新できない原因

今回加わったコードチェックは、更新時に今カスタマイズしているファイルだけでなく全てのファイルをチェックして動作に問題なければ完了するという形式のようです。

従って、更新しようとしているのがテーマだったとしてもエラーが他にある場合にはこの意味不明なエラーメッセージが出るようです。

チェックしたけどサイト内のどこかのファイルでエラーと思われる構文があったり、動作に問題が出る可能性がある、でもいろいろな組み合わせによることもあるので「何か・・・」という表現をしているようです。

チェックポイント0 サーバーのセキュリティ設定

サイト内改ざん防止のため、最近では多くのサーバーで保護機能が入っています。WAFやModSecurityと言われるものです。これらは特定のIPアドレス以外の操作を防止したり、改ざんされて影響の出る可能性が高い特定ファイルの更新を制限したりするなど、サーバーによっても、またセキュリティの方法によってもさまざまです。

テーマやプラグイン編集などで更新できるものがあったり、更新できないものがあったりということがある場合には、このセキュリティ機能が影響している可能性が高いです。

私が使っているカラフルボックスサーバーでも、ModSecurityの内容が変わったのか、突然テーマファイルのいくつかが編集できなくなりました。後述する問題を考えて操作してもダメでした。が、一旦ModSecurityをOFFにしたところきちんと更新できることが確認されました。

前述したように「更新できるもの」と「更新できないもの」がある場合や今まで大丈夫だったのに突然更新できなくなったといった現象が出た場合には、プラグインを停止したりテーマを変えたりすると今まで動いていたものが動かないなんて現象が出ることもありますから、まず初めにサーバーのセキュリティ機能を疑うのが正しいと思います。

サーバーによってメニューは異なりますが、セキュリティ、WAF、ModSecurityなどの単語で眺めて行けば何か見つかると思います。

ただ外部の人間が改ざんしようとしても同じように編集をブロックしてくれる非常にありがたい機能ですので、編集時だけオフにして、編集が終わったら再びオンにするという使い方をした方がいいでしょう。

チェックポイント1 コードを疑う

今までは更新できてたし、プラグインの追加やテーマの変更などもしていないのに新しくコード追記したらこのエラーが出た!という場合はまずこちらを疑います。

といっても記述が間違っていることは少ないことが多いのがこのエラーの怖いところかと思います。

どこかのサイトからコピーしたコードなのに、自信を持って書いたコードなのに何で??と思うかもしれませんね。

もしもコードに間違いがないことが確実であれば、コード前後や行ごとに挿入されている空白(スペース)を削除してみてください。

また別のサイトで掲載されているコードを参考に(コピペ)する場合「この部分は自身のサイトに合わせて」というものも多いと思います。これをサイト内の編集画面にコピーしてから加工するとエラーが出ることがあります。そんなときには一旦メモ帳(きちんとしたテキストエディタが望ましい)にコードを貼りつけて、そこで加工した後で全体を編集画面にコピーすると回避できることがあります。

特に日本語などのマルチバイト文字列をメッセージなどとして加工する場合にはエラーが出ることが多いようです(WordPressだけでなくほとんどのプログラムがこのマルチバイト文字列を苦手としています)。

チェックポイント2 他のプラグインを疑う

テーマ編集しているのにどうしてプラグインが!?と思われるかも知れませんね。でも・・・今回私が遭遇したのはこれでした。

どこまで詳しくやっているのかは開発者でないので不明ですが、新しくなったプログラムチェック機能では更新ボタンをクリックすると一応関係するすべてのソースを検査しているようです(これで時間がかかる場合があるようです。)。

この中にはプラグインのソースも含まれているようで、長期間更新されていないプラグインや、もともと準拠していないコードを使っているもの、記述に誤りがあるものなどがあるとエラーが出るようです。

どこにエラーがあるか分からないけど・・・ということで「何かうまくいかなかったようです。変更が保存されていないかもしれません。手動で修正し、FTP 経由でファイルをアップロードすることもできます。」という表示になるんですね。

本当に「何か・・」なので今開いているコードの問題なのか?その他なのか判別がつかない状態だと言えます。

プラグインが関係してこのエラーが出るという現象は、公式フォーラム内の

WordPress 4.9アップデート後、エディターでテーマを編集できません

でも困っている方がみえることから分かりました。この人は特定のプラグインを停止したら正常に更新できるようになったようです。

私のサイトでも構文のエラーと表示されて更新されない時を除いては、エラーとなるプラグインを停止することで改善できました。更新後はそのプラグインを再度有効にすることできちんと動作しました。

とはいえWordPressから見てサイト内で何等かでエラーが出ていることには違いないのでプラグインの使用を停止するか、エラーにならないプラグインを模索するか・・何等かの対策はした方がいいと思います。

また更新できなかったときのメッセージの後半に書いてある通りFTPを使って特定のファイル(〇〇.phpなど)を直接アップロードすることでWordPress側のコードチェック機能が働かなくなるので更新できないということはなくなります。が、そのファイルにエラーがあった場合には旧来通りエラー表示されたり画面真っ白になったりしますので注意が必要ですね。

ユーザー設定でコードのハイライト表示を無効にできるオプションが追加されましたが、私の環境ではハイライト表示をオフにしてもコードのチェックは効いたままになり改善にはなりませんでしたので、上記のように原因を探るか直接アップロードするしかなさそうです。

余談ですけどこの機能についてプログラマーさんの間で「使いにくくなるのでは?」「画面がエラーで真っ白になるのを回避するにはいい方法だ」などいろいろと意見が分かれたようです。

WordPressのカスタマイズ・不具合対応などご相談ください

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。