WordPressを4.9xに更新後、テーマの編集からPHPファイルを編集・更新しようとすると
致命的なエラーをチェックするためにサイトと通信できないため、PHPの変更は取り消されました。SFTPを使うなどの、他の手段でPHPファイルの変更をアップロードする必要があります。
と表示されてファイルの更新ができなくなりました。
以下がスクリーンショット。
別のクライアントのサイトでは、時折このエラーが表示されるものの、リトライするとうまく更新出来たりするので、なんとなく「サーバーがメンテナンスしてんのかな・・・」なんてぼんやり考えていました。
しかし今回、当サイトでは上記のエラーが出たあと管理画面もサイトトップページも真っ白!になってしまいました。ずごーん。
サーバーのPHPバージョンを7.1に変更したばかりだったので、最初はこれが原因なのかと思いましたが、管理しているクライアントのサイトでは同じサーバー、同じ状況でもこのエラーが出ません。
また、サーバーのヘルプを頼りに7.0へPHPバージョンを落としてみても、状況変わらず。
All in One WP Migrationを使ってバックアップを取ってありましたので、すぐに復旧して事なきを得ましたが、いざページの更新をしてついでにテーマもちょっと修正・・・とすると、上記のエラーが出た上で再び真っ白。もちろんFTPソフトを使って綺麗なコードのファイルで上書きしてみるのですが、それでも真っ白状態が治らず、私の頭も真っ白に。
function.phpもいじったので、これの構文エラーかなとも思いましたが、どうも違う。
新しい「コードエラーチェック機能」が仇に?
それで改めて調べてみましたら、どうやらWordPress4.9以降に実装された「コードエラーチェック」の機能が怪しい。
いえ、この機能自身が原因ということではなく、古いプラグインにはこのチェックに引っかかるものがあるらしい、とのこと。
こちらの記事「テーマの編集を更新しようとしたらエラーがでる」に「とあるプラグインを切ったらできたよ」とあったので、もしやこれでは?と思い、試しに全てのプラグインを停止してからPHPの編集をテーマ編集からやってみると問題なく更新できました!
ということは、当サイトの場合はやっぱり古いプラグインが原因ということに・・・?
真の犯人、それはプラグイン「Access Category Password」
その後、犯人を見つけるべく一つ一つプラグインを有効にしながら、PHPファイルの更新ができるかどうか試していきました。
すると「Access Category Password」を有効にしたら、出ましたこれが↓。
しかもこれが表示された後、すかさず変更失敗したファイルを改めて表示し直すと・・・
しかしここで慌ててはいけません。そう、今や犯人は割れている!
落ち着いて別タブからプラグイン一覧画面を開き、奇しくも一番上に鎮座するプラグイン「Access Category Password」をそっと停止。
その後、真っ白になったファイル(しかもfunction.phpだからちょっと慌てる)画面に戻って、バックアップしてあるソースをペタッとペーストして、再度「ファイルを更新」。すると元通りになりました。
この「Access Category Password」、手軽にカテゴリー毎にパスワードがかけられるので(紹介記事「WordPressで特定のカテゴリーにパスワードをかける」、サイトの一部だけど、記事毎は面倒な場合のアクセス制限にとても便利だったのですが、すでに2年以上更新が止まっていました。
こうやって古い更新の止まったプラグインは淘汰されていくのね…
古いプラグインを使いながらWordpressサイトを管理していく場合
どんなに古くなったって、重宝しているプラグインだってありますよね。
そういう場合は以下の2通りでWordPressテーマの更新をするしか当面はないと思います。
1.FTPソフトで更新
フリーのFTPソフト(私の場合はFilezillaです)を使い、テーマ内のPHPファイルを更新します。
FTPソフトの使い方はググってください。
2.プラグインを停止してからテーマ編集
問題を起こしているプラグインがはっきりしていれば、それだけを停止すればOKですが、そうでない場合は一括で停止してからテーマ編集しましょう。
ちなみに、こちらで調べた中で問題の無かった有名プラグインは以下の通りです。
PHPテーマファイルの更新失敗を起こさないプラグイン(有名どころ)2018/05/28現在
- Advanced Custom Fields
- Akismet Anti-Spam (アンチスパム)
- All In One SEO Pack
- All-in-One WP Migration
- AmazonJS
- Breadcrumb NavXT
- Contact Form 7
- Duplicate Post
- EWWW Image Optimizer
- Flamingo
- Intuitive Custom Post Order
- MetaSlider
- Really Simple CAPTCHA
- Simple Lightbox
- SiteGuard WP Plugin
- WP Multibyte Patch
- WP Remove Category Base
- Multi Device Switcher
この記事が誰かのお役に立ちますように(*´`*)♡