プラグインなどで外部JavaScriptライブラリを読み込む際に、プラグインごとに<head>内でecho '<script type="text/javascript" src="'. get_options('site_url') . '/wp-includes/js/prototype.js"></script>';なんてやると、場合によっては同じライブラリをいくつも読み込む事になってしまいます。それを防ぐために、WP2.1からは外部スクリプトのロードを面倒見てくれる仕組みが追加されています。
使い方は簡単。使用するファイルスクリプトをwp_enqueue_script()関数でキュー(出力するリスト)に入れれば、<head>内で重複なしでロードしてくれます。また、依存するスクリプトがある場合はそれも一緒に読み込んでくれるのでかなり便利。関数のコールはこんな感じ:
wp_enqueue_script( $handle, $src = false, $deps = array(), $ver = false );
- $handle
- スクリプトの識別名
- $src(optional)
- スクリプトファイルへのパス。http://で始まるURLまたはサイトルートから絶対パス。
- $deps(optional)
- 依存するスクリプトのリスト(配列)
- $ver(optional)
- スクリプトのバージョン
WPのコアで使われるprototype.js、scriptaculous.js、dbx.js、fat.jsなどはディフォルトですでに登録されているので、スクリプトのハンドル名だけ渡してやればOKですが、それ以外のスクリプトはパスも一緒に指定します。
例えば、プラグイン内でfatとscriptaculousを使う場合はこんな感じ:
// ハンドル名だけ渡せばOK
wp_enqueue_script('fat');
wp_enqueue_script('scriptaculous');
scriptaculousで必要なprototype.jsも一緒にロードしてくれます。
自作のスクリプトの場合はこんな感じ:
// スクリプトへのパスを第2引数で渡す
wp_enqueue_script('myjs', '/wp-content/plugins/myplugin/my-js-lib.js');
実際にプラグイン内で使う時はこんな感じになります。
function multifile_upload_admin_header() {
// スクリプトを追加する
wp_enqueue_script( 'multifile_upload', '/wp-content/plugins/multifile-upload/multifile_upload.js', array('prototype'), false);
}
// 上の関数をフックに追加
add_action(’admin_print_scripts’, ‘multifile_upload_admin_header’);
上記のファンクション内は、
wp_enqueue_script( 'prototype');
wp_enqueue_script( 'multifile_upload', '/wp-content/plugins/multifile-upload/multifile_upload.js');
のように書いても同じですが、依存するファイルを引数で指定するとロードする順番も考慮してくれます。
読み込みはせずに、あとで他のプラグインなどで利用できるように登録だけしておく場合はwp_register_script()を使います。引数はwp_enqueue_scriptと同じ。あまり使うことはなさそうですが。
In English at my blog on WP!
投稿画面のアップロード機能で、一度に複数ファイルのアップロードができるようにするプラグインです。おまけでアップロードする画像とサムネイルのサイズを指定してリサイズする機能もつけました。
This plugin doesn’t work with WP2.1. Please use the updated version.
検索
紹介
This is the about text
