ワードプレスを 5.5 にアップデートしたらクラシックエディターが動かない…?
【2020/09/02 追記】
今日 WordPress 5.5.1 がリリースされた。今回はセキュリティリリースではないが、ブロックエディターのバグ修正も含まれているのでアップデートしておこう。
今日(2020/8/12)WordPress 5.5 がリリースされたが、 アップデート後に『クラシックエディターが編集できなくなった』『クラシックエディターの切り替えボタンが動作しない』など「クラシックエディターに関するトラブル」の報告が多数ある模様。
ここではトラブルシューティングの手順と、その解決方法を探ってみる。
1. まずプラグインを一つずつ無効化してみる
どれかのプラグインを停止した段階でエディターがうまく動作するようになったのではないだろうか?
少なくともクラシックエディターだけ有効化された状態になったらエディターはちゃんと動く(自分の環境で動作の確認済み)。
今回のようなトラブルに限らず、アップデートしてなにかおかしくなったらまずはプラグイン、テーマを疑ってみる必要がある。
もちろん WordPress のコア(本体)のバグの可能性もまったくないわけではないだろうが、リリースまでには相当の人たちが時間をかけてテストしているので、その可能性は非常に低いと言える。
【2020/08/13 追記】
特に WordPress 本体のメジャーアップデート後に不具合が発生した場合、一つのプラグインが原因とは限らない。
そのためにトラブルシューティングの難易度がちょっと高いと思うのだが、これは地道にチェックしていくしかない。
ここで、そんなときにあると便利なプラグインを一つ紹介しておく。
https://ja.wordpress.org/plugins/plugins-condition/
ご覧のように、管理画面のプラグイン一覧表示のときに「どのバージョンの WordPress で動作確認されているか」「最新版はいつ更新されたか」が一目瞭然。
これが例えば対応バージョンが「4.x.x」だったり最終更新が「3年前」とかだったら、そのプラグインはかなり怪しいと言える。
「最新版にアップデート」は気にしていても『そのプラグインの最新版はいつリリースされたか』は普段あまり意識することがない。つまり、ずーっと更新されていないプラグインを使い続けていると、そこに気づけないという罠がある。
このプラグインがあれば「あまり古いプラグインを使い続けるのはトラブルの原因(=だいたい同じ機能で、最近も更新されているプラグインを探そう)」となる。
こういった「こんな機能あったらいいのに」が有志作成のプラグインで簡単に実現できるのが WordPress の本当にいいところ。
2. もしまだダメだったらテーマをデフォルトのものに変えてみる
プラグインをクラシックエディターだけにしてもうまく動作しなかったら、デフォルトのテーマも最新版にアップデートしてテーマを切り替えてみよう。
これでエディターがうまく動くようになったら、原因は「ずっと使っていて古いままのテーマ」ということになる。
3. 以下のプラグインを入れて有効化する
https://ja.wordpress.org/plug…/enable-jquery-migrate-helper/
このプラグインをインストール・有効化した後に、全てのプラグインをもう一度有効化して(もちろんテーマも戻して)みよう。
これでちゃんと動くようになったのではないだろうか?
原因の考察
ちょっとググると「WordPress 5.5 のアップデートのせいで…」「クラシックエディターのせいで…」という記事がすぐヒットするが、残念ながら原因はそこではない。
WordPress 5.5 では「jQuery migrate(古いバージョンの jQuery との記述の差異を吸収するプログラム)」が同梱されなくなった(こちらの記事に今後の流れも含め詳しい解説がある)ので、古い記述が残ったままのプラグインやテーマで正しく動作しなくなる可能性がある。
きっかけは確かに WordPress 本体のアップデートにあることに違いはないが、原因は「jQuery の古い記述が残ったままのプラグイン(またはテーマ)」ということなのだ。
【2020/08/17 追記】
ここで紹介したプラグイン「Enable jQuery Migrate Helper」は、あくまでも WordPress の「コアに同梱される jQuery のアップデートの移行期間のため」の暫定的なプラグインなので、このプラグインを入れたらOK、ではないことにも注意が必要だ。
なぜなら、前述の記事にもあるように次期バージョンの WordPress 5.6 では最新版の jQuery と jQuery migrate が同梱されるようになるとアナウンスされているからだ。更にその次の WordPress 5.7 では jQuery migrate が改めて同梱されなくなる予定だ。
今回は特にクラシックエディターの挙動の問題が表面化したようだが、今後のアップデートにおいてはメンテナンスされていないプラグインやテーマは使えなくなる可能性が高いと思っておいたほうがいいだろう。
ちなみに、jQuery がアップデートされたときの挙動を先に確認するためのプラグイン「Test jQuery Updates」もリリースされているので、テスト環境で事前に jQuery がアップデートされたときに正しく動作するか試しておくのが望ましい。
【2020/08/18 追記】
あとひとつ、WordPress 5.5 から jQuery の読み込み位置がヘッダー固定ではなくなった(場合によってはフッター側で読み込まれることがある)ことも影響する可能性がある。
これはブラウザでソースコード表示して「jquery」の文字列で検索すれば、どこで読み込まれているか確かめられる。
これでうまく復旧したら、動作検証の途中で問題になったと思われるプラグイン(またはテーマ)の制作者にフォーラムで伝えてあげよう。
おまけ
WordPress 本体をダウングレードできるプラグインもあるようで、そのプラグインを紹介しているブログ記事も散見されるのだが、僕はそれを積極的に勧める気にはなれない。
いつでも「最新版が最もセキュア(安全)」なのは間違いないので、ダウングレード以外の方法で対応できるようにするのが本筋だと思うし、事実それで解決できる。
それと、できる限りローカル環境、あるいはステージング環境を用意しておいて、手間ではあってもアップデートの際はまずそのテスト環境で試してから本番環境(公開環境)でアップデートすることを強くおすすめしたい。
今どきの一般的なレンタルサーバーであれば、サブドメインを用意して非公開でのステージング環境くらい手軽に用意できるだろうし、自分のパソコン上でも完全ではないにせよテスト環境は用意できる。
個人のブログでも公開環境でトラブルがあって困る人は多いと思うので、この機会にローカル環境、またはステージング環境を用意しよう。All-in-one WP Migration を使えばクローンも一瞬 ← 最期に宣伝(笑
そうそう、もちろんバックアップも必須。特に WordPress 本体のメジャーアップデートのときは、手動でもいいので必ずファイルとデータベース双方のバックアップを取っておくこと。最悪でもバックアップから復旧できる。
あと本当に蛇足ながら、もうそろそろブロックエディターに移行してもいいと思うの…。
参考
https://wordpress.org/support/topic/5-5-classic-editor-text-view-add-media-not-working/
なにかトラブルがあったらフォーラムを見てみるのも一つの方法。似たような事例があるかも。日本語のフォーラムは以下。