12
20
2020
WordPress5.6へのアップデートは要注意!!!
WordPress5.6への安易なアップデートはとても危険
12月8日にWordPress5.6 がリリースされたが、WordPress5.6では JQuery 関係が大幅に仕様変更となっているので、JQueryに依存するテーマファイルやプラグインを利用している場合は、当面WordPress5.6へのアップデートを見送る方が良いだろう.
WordPress5.6ではデフォルトのJQueryバージョンが V1.12 ⇒ V3.5.1 に変更になっている.JQueryはバージョン毎に機能や仕様が異なり、今回のような一足飛びのバージョンアップではかなりソースコードを手直ししないと動作しなくなる.
私が運用している別なサイトでは自作の写真系のギャラリープラグインを使用しているが、このギャラリープラグインのベースとなっているギャラリーライブラリ “Galleria“ が、JQuery 1.x 系を用いており、ソースコードをかなり手直ししないとエラーとなって動作しなかった.

自作の写真ギャラリープラグインが動作しなくなってしまった

Safariブラウザのデバッグ機能を使ってエラー発生箇所をチェックする

JQueryのイベント関連のハンドラー “.load()” 部分でエラーが発生
JQueryのホームページの API Document [ Category: Deprecated 1.8 ] から ”.load()” が使えなくなっている事が判明した.
今回の WordPress 5.6 では、JQueryのバージョンが一気にV3.5まで上がってしまったので、V1.8の時点で無効になった ”.load()” も影響を受けてしまった.”.load()” 以外にも、”.error()”、”.unload()” などもV1.8で無効になっているので、ソースコードの手直しは結構手間が掛かりそうだ.
とりあえずWordPress 5.6 のリリースに関するサポートページ “https://wordpress.org/support/wordpress-version/version-5-6/#jquery-update” を漁って回避策があるかどうか探ってみることにする.ソースコードを書き直すまでのつなぎで良いので、今回は先ず手っ取り早い解決策を採ることにする.
jQuery update
Updates to jQuery in WordPress take place across three releases 5.5, 5.6, and 5.7. As we reach the mid-point of this process, run the update test plugin to check your sites for errors ahead of time.
If you find issues with the way your site looks ( e.g. a slider doesn’t work, a button is stuck — that sort of thing), install the jQuery Migrate plugin.
WordPress5.6の検証環境に上記の “Enable jQuery Migrate Helper” プラグインを導入し、現在のWordPressのデフォルトの JQuery Version での互換性の問題がある箇所を探し出すことにする.

“Enable jQuery Migrate Helper” プラグインを導入してみる

互換性に問題がある部分を”Enable jQuery Migrate Helper” プラグインが見つけ出してくれる
とりあえず”Enable jQuery Migrate Helper” プラグインを稼働させておくと、WordPress5.6 (JQuery 3.5.1)環境下でも、JQueryの互換性に問題があるプラグインやテーマファイルでも一応動作するようになるようだ.
勿論、この”Enable jQuery Migrate Helper” プラグインは一時的な応急措置でしかないので、プラグインやテーマファイルの早急なアップデートが必要であることは言うまでも無い.
“Enable jQuery Migrate Helper” プラグインの中身を調べた訳ではないので、このプラグインが何をやっているのかは現時点では不明だ.たまたま私のプラグインがこのプラグインの導入によって動作しただけかもしれないので、他の環境でも動作するかどうかは全く分からない.
このプラグインを当てにして本番環境のWordPressをV5.6にアップデートする馬鹿は居ないいだろうが、JQuery 3.x への対応は慎重に行う必要があることは言うまでも無い.WordPressの対応にも疲れたので、そろそろ別な環境へ移行することを真剣に検討することにしよう.

WordPress5.6環境下でもエラーが発生していない模様

とりあえずプラグインのソースコードを書き換えることなく WordPress5.6 環境下で動作することを確認