ウェブ、ショウジン

WordPressに自分で好きなjQueryプラグインを入れる

2012-1-17
Category
jQuery WordPress

WordPressに自分で「使ってみたいな」と思ったjQueryプラグイン(今回はたまたまjQuery Cycle Pluginでした)が機能せず、ちょっとすったもんだしたのでそのへんとどう解消したかを残しておきます。

WordPressでは、自分でjQuery等の各種ライブラリを用意して埋めこまなくても、インストールすればデフォルトで読み込まれる(wp_head();の記述があれば)けれど、逆にこのおかげで自分が使いたくて追加したjQueryプラグインが動かなかったりしました。その原因とかは以下の記事がとてもくわしいです。

WordPressでjQuery等の外部ファイルを読み込む方法

ようはコンフリクトを起していたり、逆にそれを回避するために仕込まれている(WordPress側で用意しているjQueryに)もののせいでjQueryがうまく動かないといった不具合が起こることがわかりました。

自分はこれまでもとくにライブラリに依存してなかったので(管理画面は別として)使うにしてもjQuery一本にしておけば前述のようなこともせず、普段扱っているようにjQueryが利用できると判断して、結局「WordPressに仕込まれている版のjQueryは使わない」ということに決定。

以下の記述を使用しているテーマのfunctions.phpに追加。

functions.php

/* 管理画面以外ではデフォルトのjQueryは読み込まずGoogle APIのものを読み込む */
function load_cdn() {
	if ( !is_admin() ) {
	wp_deregister_script('jquery'); // WordPressデフォルトで読み込まれるjQueryをキャンセル
	wp_enqueue_script('jquery','http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'); // Google APIからmin版の最新のものを読み込んでいる
	}
}
add_action('init', 'load_cdn');

管理画面のほうは自分が把握していないいろんな部分でjQueryを使っているだろうし、それをふまえてプラグインとかもインストールできるようになっているかと思うので、こっちはそのまま(WordPressデフォルトで仕込まれているjQueryそのまま)にしておけるようにif文で条件判別。

管理画面以外ではwp_deregister_script()関数でデフォルトのjQueryの読み込みをキャンセル。そのあとで、今度はwp_enqueue_script()関数で、Google APIで用意されているjQueryを読み込み。「1」の部分は、これで「最新バージョン」を読み込むということだそうです。最新じゃなくて、任意のバージョンのものを利用したい場合は、この部分にそのバージョンナンバー(例:1.2.3等)を記述すればよいそうです。あと、今回は必要なかったので、より軽量な「min」版を指定。

こうした上で自分が使いたいjQueryのプラグインファイルを用意して、それをテンプレートファイル上で適宜読み込んで使用。jQuery Cycle Pluginは無事、使えるようになりました。(これチョー便利。有名でよく紹介されているのがわかります)

今回お世話になったのは
WordPressでjQuery等の外部ファイルを読み込む方法
WordPressでjQueryを使うときに、問題なく動作させる為の基礎知識やTipsと、動かない場合の対処例

大変助かりました。ありがとうございます。

Categories

Tag Cloud

AdMob Android Apache centos CodeIgniter EC-CUBE facebookアプリ facebookページ feed Firefox Flash google googleanalytics htaccess iPad iPhone JavaScript lamp mobile nginx ogp pear php plugin rollover rss sendmail setting smarty ssh Titanium Mobile Titanium Studio tutorial ubuntu vim VirtualBox vmware vps Windows WordPress xampp youtube さくらインターネット アクセス解析 カスタム投稿