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カスタマイズ」新着記事

ソーシャルメディアのトータルシェア数を条件にして記事をランダム表示する方法

ホシナ カズキ

チャット風の会話形式コンテンツをプラグインなしで実装する方法

ホシナ カズキ

【WordPress】パーマリンクからカテゴリーベースを取り除く方法

ホシナ カズキ

ディレクトリを切ってインストールしたWordPressをドメイン直下で表示させる方法

ホシナ カズキ

「RSS Footer」が開発終了したならfunctions.phpで同じことやればいいじゃない

ホシナ カズキ

もっと見る

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

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