WordPressにはjQueryが同梱され、サイトの随所で利用されているが、そのバージョンがついに最新版(現時点では3.5系)にアップデートされることがmakeブログで発表された。これまでは1.x系にパッチを当てたものが同梱されていたが、ついに最新版に上がるようだ。筆者は、つぎはぎだらけのお古ジーパンを着させられていたキッズが最新の服を買ってもらったような喜びを覚えた。
リリースまでのマイルストーンは次の通り。
- jQuery Migrate 1.x(後方互換ライブラリ)をWordPress5.5から削除
- WordPress 5.6からjQuery、jQuery MigrateおよびjQuery UIを最新版にアップデート。
- WordPress5.7以降でjQuery Migrateを削除
5.5が2020年8月リリース予定なので、年内にはjQueryが最新バージョンになることだろう。
なぜこんなに時間がかかったのか?
さて、WordPressはjQuery 1.x系を頑なに使い続けてきたのだが、議論自体はもう4年も前から行われていた。猛烈な反対があったわけではないが、以下のような点でブラウザ対応のために古いバージョンを使い続けていた。
- IE8などのブラウザ対応。
- プラグインの互換性。
- 影響範囲が大きい。
しかしながら、jQuery1系, 2系がサポートされなくなって久しいこと、各種セキュリティツールで警告が出てしまうこと、そもそもPHPの推奨要件を上げているので同じことがjQueryにできないはずはないこと、などなど、様々な要件からついにjQueryもアップデートの対象になったようだ。
破壊的変更の影響は?
jQueryが1系から3系に上がるとなると、いくつかの破壊的変更(breaking changes)が入るのだが、どのように対応したら良いだろうか。
- まず、現時点でWordPressデバッグモードにしてブラウザのインスペクターツールでコンソールを見てみよう。ここで警告が出ている場合、jQuery 1.8以前までに廃止された機能が使われている。エラーを起こしているプラグインやテーマをつきとめておこう。自分で修正できればしてもいいが、そもそもjQuery 1.8以前の非推奨機能を使っているプラグイン・テーマはあまり優れたものではない。
- 5.5ではjQuery Migrate 1.xが廃止される。この時点でなにが判明するかというと、jQuery 1.8以前の非推奨機能を使っている場合、エラーが起きるということだ。よほどのことがない限り、ここでエラーは起きないはずである。
- 続いて、5.6でjQueryとjQuery Migrateの最新版が導入される。ここで再びコンソールを開くと、非推奨の機能については警告が出ているはずである。自分の管理するテーマ・プラグインなら修正し、サードパーティーのものなら作者に教えてあげよう。
上記のフローは一年ぐらい余裕があるので、頑張って対応しよう。
WordPressにおけるjQueryの今後は?
jQueryは長い間ブラウザの差異を埋めるツールとして広く使われてきたが、WordPressのブロックエディターをはじめとして、React依存が強まっている。また、@wordpress/api-fetch などのツールが備わっていることで、そもそもjQueryがなくてもそれなりに動くようになってきた。BootstrapなどのCSSライブラリでもjQuery依存をやめるところが増えている。
今後もしばらくはWordPressにjQueryは同梱されつづけるだろうが、コアに追加される新機能はjQueryにそれほど依存しないだろう。自分でプラグイン・テーマを作るときはもうjQueryを意識する必要はないかもしれない。