WordPressは5.5, 5.6とjQueryの1系から3系へのバージョンアップの移行作業をしてきました。5.7はそのラストフェーズです。
ラストはクリーンアップで最後の後片付け。問題が起きるほうが稀でしょう。これでjQueryは完全に3系になります。
ラストフェーズ: ステップ3はクリーンアップ
WordPressは5.5からjQueryのバージョンアップが始まりました。あまりにシステムに対する影響が大きいために3段階のステップがあります。
WP5.7はそのステップ3でラストフェーズです。ステップ3はバージョンアップのあとの後片付け。
正確にはjquery-migrateを外す作業でjQueryバージョンアップ後のクリーンアップです。WP5.6でとくに問題ない人は比較的スムーズに行くはず。
もし問題が出るようなら開発者の怠慢かもうやる気がないです。ステップ3はmigrateを外すという話はWP5.6のときにも分かっていたはずなので。
ステップ | 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 | なし | 1.12.1 |
過去のステップ1、ステップ2の内容です。
WP5.7にアップデート後エラーになったとき
WP5.7にアップデートしたらjQueryのエラーで動かないというときは、jQueryのダウングレードのプラグインが用意されています。
WordPressの開発チームが作りました。
jQueryのテストプラグインでもダウングレードができますがWP5.7に対応していません。もともと本番運用で使うのは推奨していなかったので、対応する気はないでしょう。
自己責任で使う分にはかまいませんが。
Enable jQuery Migrate Helperプラグインは、なかなかの動きをします。
(Ajaxでページをリロードして、jQueryを載せ替える。)
くわしくはこちらをどうぞ。
WP5.7を乗り切ればjQueryはしばらく落ち着く
jquery-migrateを外すということは、古いJavaScriptのコードを削除してクリーンにするということ。
公開サイトでは凝ったJavaScriptはあまり見られないので影響は小さいですが、管理画面はjQueryに依存した機能が多いです。
公開サイトでJSをふんだんに使うならWordPressではなくReactを選ぶ。
プラグインで機能強化している人は要注意。WP5.7に未対応のものは注視しましょう。更新が止まっているものはこれを機にアンインストールして使うのをやめるのもありです。
今回のような3ステップを使うほどの大規模なバージョン移行はしばらくないはずです。次の移行まではけっこうな時間があるはずなので、次に備えるくらいならあまりjQueryに頼るのは止めてほしいかな?
ピュアJSでできるならそっちのほうがいい。今のJSでの開発環境はかなり進化していてトランスパイルも簡単にできるし、最近はTypeScriptで書くこともある。
トランスパイル(transpile)
プログラムを、べつのバージョンや、べつの言語のプログラムに変換すること。
一種のコンパイラ。トランスコンパイラともいう。
JavaScriptは最新の仕様で開発して、任意のバージョンにトランスパイルする手法が一般的になっている。
(新しい仕様のほうがシンプルな記述で読み書きしやすいため。)
@babelが有名。
トランスパイルは文法を変換するが新しいAPI(関数やオブジェクト)までは対応できない。
古いもので確実に動かすためにはポリフィルも必要。
ポリフィル(Polyfill)
プログラムのバージョン違いでAPIが不足するところを補うこと。
プログラム言語はバージョンが上がると新しいAPIを追加する。APIは関数やクラス・オブジェクトのこと。
古いバージョンで動かすときは新しいAPIと同じ機能がないと動かない。それを作るのがポリフィル。
ポリフィルは、新しいAPIを移植するのではなく、古いバージョンのプログラムで実装できるAPIに作り直して提供する。
jQueryのmigrateはjQueryのポリフィル・パッケージ。
トランスパイルで有名な@babelにもポリフィルの拡張機能がある。