WordPressで外部のjQueryを読み込むときに注意すべきひとつのポイント

スポンサーリンク

いやー、ちょっとハマっちゃったので備忘録的に書き残しておこうと思います。

久々に管理画面を触っていたら、メディアアップローダーがちゃんと動かない! という状況に陥りまして、その原因がjQueryの読み込みに関係してたんですよねー。。

Designing a new feature, with jQuery!
Photo:Designing a new feature, with jQuery! By Peter Hellberg

WordPressを使う上のに切っても切れないのがjQuery。
各種プラグインがさまざまなjavascriptのフレームワークを使うため、そもそもWordPressに包括されるかたちで、jQueryは導入されることになります。

そのため、特にjQueryの公式サイトからダウンロードしてくる必要もありません。

ただ、ちょっと気になるのがそのロード時間。
内蔵されたjQueryを呼び出すこと自体が、ロード時間の増加につながっている可能性もあります。

そこで、うちでは内蔵のjQueryを使わずに、Google AJAX Libraries APIのキャッシュを使って負担軽減できるようにしています。
これを採用することで常に最新版のjQueryを取得できるメリットもあります。

読み込ませるには、基本的に以下のコードをfunctions.phpに記述するだけ。

wp_deregister_script( 'jquery' ); wp_enqueue_script('jquery','http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js');

wp_deregister_script()関数で、WordPressに内蔵されているjQueryの読み込みをキャンセルし、wp_enqueue_script()関数でGoogle AJAX Libraries APIのjQueryを呼び出しています。

これで何の問題もなく使えていたんですが、ここでひとつの問題が。。

この記述だと、管理画面でも内蔵のjQueryを無効にしてしまうわけで、場合によってはそのせいで管理画面のメディアアップローダーなどの機能がうまく動かなくなる恐れがあるんです。

実際にうちではその状況が発生してしまい、メディアアップローダーがきちっと動かない状態に・・・。

そんなこともあって、ちょちょいと上述のコードを変更して、管理画面では内蔵のjQueryを使うようにしたところ、無事元通りにメディアアップローダーが動くように。
外部からjQueryを読み込むことに、まさかこんな弊害が出るとは思いも寄りませんでしたよ。。

というわけで、もしかしたら同様の症状になってハマってしまっている人がいるかもしれないので、管理画面では読み込まずに済ませるよう、以下の記述をシェアしておきます。

if ( !is_admin() ) { wp_deregister_script('jquery'); wp_enqueue_script('jquery','http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'); }

これで、管理画面では内蔵のjQueryが、サイト側ではGoogle AJAX Libraries APIが読み込まれるようになりますよ。

ちなみに、http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js/1/としていることで、常に最新バージョンが読み込まれます。
最新バージョンで問題が発生する場合は、この部分に1.5、1.7などバージョン番号を指定してやることで、指定したバージョンで読み込まれるようになります。

また、jquery.min.jsのminを取り除けば、フルバージョンの読み込みになりますよ。

「WordPress」新着記事

カスタムブロックを追加するなら「Block Lab」プラグインを導入すると幸せかもしれない

Avatar for ホシナ カズキ

ホシナ カズキ

大規模・広範囲にわたるクラッキングによるWordPress改ざん事案が発生中

Avatar for ホシナ カズキ

ホシナ カズキ

【2016年版】モバデビで絶賛稼働中のWordPressプラグイン

Avatar for ホシナ カズキ

ホシナ カズキ

「SNS Count Cache」v0.10.0におけるFacebook取得の不具合を解決する

Avatar for ホシナ カズキ

ホシナ カズキ

「SNS Count Cache」のFacebookカウント数取得できない問題を暫定的に解決した

Avatar for ホシナ カズキ

ホシナ カズキ

もっと見る

モバデビモバイルウェブのネタ、ニュースMaciPhoneなどのApple関連、WordPressのことなど、いろいろ書く雑食系ブログメディア。
ためになるかもしれないし、ならないかもしれない。そこそこ更新してますそこそこ。

このブログについてもっと詳しく