いつの間に!? ワードプレスのjQueryのスクリプトハンドル名が「jquery」から「jquery-core」になっていた!
ええ、全然気づいていませんでした。
最近プラグインの非同期機能を久々にテストしてみたら、JavaScriptエラーが大量に出現してびっくり仰天! 通常はテストの方が多いから、結構機能を外しているんですよ。
随分前に変更されていたらごめんなさい。
で、その全ての原因が「jQueryが定義されていません」という内容で、「なんじゃこりゃ?」となってわけです。
スクリプトハンドルというのは、ワードプレスでJavaScriptファイルを出力する時に、読み込むファイルに与えるIDのことで、出力するHTMLのscriptタグを編集できるなど、管理しやすいようになっているんですよ。
で、今まで僕の知っている限り、ワードプレスが用意しているjQueryファイルのハンドルは「jquery」だったんですが、これがいつの間にか「jquery-core」となっていたんです。ちなみに僕の現在のワードプレスのバージョンは4.7.2です。
スクリプトを非同期ロードする方法って以前にも紹介して、僕も昔他のページで学んだことだったんで、僕以外にも恐らく被害が出ている人もいるんじゃないかと。ページスピードインサイトとかでテストすると「非同期にしたら?」と改善案が出ますからね。
じゃこれが何故エラーの問題に繋がるのかというと、例えば僕の浸かっている非同期ロード方法は「ワードプレスのスクリプトが出力される前にフィルターを通してタグを編集する」という方法を採っているのですが、条件に「ハンドルが〇〇の時」としていたので、予め用意していた条件に合致しなくなり、依存すべきjqueryファイルも非同期で読まれるために一気にエラーが噴出したんですよ。
で、非同期対象から外す条件としては、今後はハンドルを「strpos」などの関数で「jquery」を探して無ければ、非同期ロードをするような処理に変更する必要がある気がします。また、変更されると困りますが、「jquery」を使っている以上は流石にハンドルに「jquery」の文字は使うだろうと予想できますから。
また、ちゃんと対策できて忘れてなかったら、ブログに書こうと思います。
僕もこれから対応できるようにアップデートします。
めんどー。
1件のピン
[…] 2017/02/03 いつの間に!? ワードプレスのjQueryのスクリプトハンド… […]