WordPress5.5からjQueryの段階的なバージョンアップが始まりました。
いきなり上げるのは問題があるらしく、WordPressの3回のバージョンアップで小刻みにjQueryを上げていきます。
WP5.5はその最初のステップ。
このバージョンアップの注意点と対応をわかりやすく説明します。
なぜ段階的に上げるのか?
jQueryはWebのモダン技術に対してレガシー(古い)と言われます。
が、WordPressではまだまだ現役。どころか、テーマ・プラグインも含めていろんなところで使われます。
とくに管理画面は。
WordPressのテーマ・プラグインは、数、関わってる開発者が多いので、一気にjQueryのバージョンを上げるのは影響が大きすぎます。
そこで、段階的なバージョンアップになります。
(jQuery公式もこの方法を推奨している。)
Migrateとは
jquery-migrateは過去バージョンの下位互換のためのプラグインで、現行バージョンで対応できない古いコーディングをしていたら、古いコードを復元してくれます。
ただしjQueryのバージョンはたくさんあるので、それらの下位互換のために大量のコードが入ってます。
(使わないものもかなり。)
バージョンアップ作業をショートカットできる利点はありますが、サイトの表示スピードが遅いです。
WordPressはMigrateを辞めるつもり
WordPress5.4まで、jquery-migrateが標準搭載されていました。これがイヤでカスタマイズでmigrateを外していた人も多いのではないかと思います。
ボクも公開サイトだけはmigrateを外すカスタマイズをしていました。
(管理画面はあまりに影響が大きすぎてあきらめた。)
今回のWordPress5.5から始まるjQueryのバージョンアップでは、migrateを外す予定です。
WordPress5.5で手始めに対応したのは『現行バージョンのままmigurateを外す』。たったこれだけ。
それでもけっこうな量のjavaScriptエラーが出ていますが。
ボクの場合、公開サイトは、migrateを外してたしjQueryのバージョンも最新を使うようにカスタマイズしていたので影響がなかった。
が、管理画面は何かしらエラーが出ててどうしようもない。
(とりあえず、エラーが出ても使えてるので放置している。)
バージョンアップのスケジュール
jQueryのバージョンアップは3段階が予定されています。2020年8月21日現在、ステップ1が終わったばかり。
ステップ | WP バージョン | jquery (本体) | jquery-migrate | jquery-ui |
---|---|---|---|---|
1 | 5.5 | 1系のまま (1.12.4) | × | そのまま (1.11.4) |
2 | 5.6 | 3系にアップデート (3.5.1) | アップデート (3.3.0) | アップデート (1.12.1) |
3 | 5.7 | アップデートなし | × | アップデートなし |
ステップ | 内容 |
---|---|
1 | 下位互換の無効化。 migrateだけ外す。 アップデートなし。 |
2 | jQueryおよびUIプラグインのアップデート。 (1系 -> 3系) Migrate付き。 |
3 | 下位互換の無効化。 migrateだけ外す。 アップデートなし。 |
jquery | migrate | ui |
---|---|---|
3.5.1 | 3.3.0 (デフォルトなし) | 1.12.1 |
これからjQueryのアップデート、下位互換の無効化が控えてますが、あくまで予定です。
(最後のmigrate外しは、WP5.7かそれ以上と既に言っている。)
説明を見ると"latest"を使っているので、jqueryのアップデートバージョンが変わる可能性あり。
1系から3系へ飛び級アップデート
WordPressに内包されているjQueryのバージョンは1系です。jQueryの最新バージョンは3系。
今回始まったバージョンアップは2系をすっ飛ばして一気に最新バージョン(3系)にアップデートします。
テストプラグイン - Test jQuery Updates
jQueryのバージョンを切り替えるテストプラグインが用意されています。次のWordPressのjQuery環境の切り替えができます。
WPのバージョン |
---|
5.4 |
5.5 |
5.6 |
5.7(予定) |
プラグインがWP5.4以上になってるので、それより低いバージョンの動作は保証されていません。
個々の切り替え
このプラグインは、jQuery本体(core)、jquery-migrate、jQuery-uiのバージョンを個々に切り替えできます。
その組み合わせで、WordPressのバージョンごとのjQuery環境が作れます。
(将来のjQueryの組み合わせも設定できるので、今のうち備えることもできる。)
jquery | jquery-migrate | jquery-ui | |
---|---|---|---|
旧バージョン (1系) | 1.12.4 | 1.4.1 | 1.11.4 |
新バージョン (3系) | 3.5.1 | 3.3.0 | 1.12.1 |
WPバージョン | jquery | jquery-migrate | jquery-ui |
---|---|---|---|
5.4 | Default (1.12.4) | Enable (1.4.1) | Default (1.11.4) |
5.5 | Default (1.12.4) | Disable (×) | Default (1.11.4) |
5.6 | 3.5.1 | Enable (3.3.0) | 1.12.1 |
5.7 (予定) | 3.5.1 | Disable (×) | 1.12.1 |
migrateはjquery本体のバージョンを見て、プラグインが自動で対象バージョンを設定してくれるので楽です。
このプラグインは、WordPress5.5にアップデートする前にインストールして動作確認に使ってほしいですね?
jquery-uiのバージョンはjQueryのメジャー番号と一致しません。
(migrateのメジャー番号はjqueryと連動。)
2020年12月8日に、WP5.6が公開されました。
予定通り、jquery, migrate, jquery-uiのバージョンが上がっています。
5.5へのアップデートは要注意と言いましたが、5.6へのアップデートはもっと要注意。
jqueryのバージョンを1系から3系に一気に挙げているので、現行のmigrate外しの5.5とは影響度がちがいます。
5.6へ上げる前に必ず、上記のテストプラグインで5.6のjQueryの環境に設定してテストしましょう。
このプラグインの最新版は2.0.0です。(2020年12月10日)
しかし、2.0.0はWP5.6以上になっているので5.5では使えないなど、注意点があります。
くわしくはこちらに書きました。
WordPressのアップデートは慎重に
WordPressは、3、4、5系と使ってきましたが、今回のWP5.5へのアップデートにいちばん気を使っています。
とくにプラグインを多く使っている人、デフォルト以外のテーマを使っている人は要注意。
(WordPress非公式はとくに。)
アップデート頻度が低いものも注意しましょう。
じっさい5.5にアップデートしましたが、JavaScriptのエラーが出てます。正直、1ヶ月くらい様子見してもよかったかなと思ってます。
3段階の最初でそう思うので、半年くらいは慎重になるかも?
これを機に別のテーマ・プラグインに変えることも念頭に入れときましょう。すべての開発者が迅速に対応するとは限らないので。
WordPressは参入しやすいこともあり、キャリアの少ないエンジニアがたくさんいます。
中にはエンジニアの最低限の常識すらない人もいて、お金目当てを目的にするあまり、バージョンアップの対応すら考えもしない人もいます。
(一時期、Twitterのタイムラインに溢れるくらい流れていた。最近は見なくなってはいるが。)
気をつけましょう。
(ちなみに普通のエンジニアは、自分ができなければ引き受ける人を探す、代わりになるものを紹介する、など行う。)