Author Archive for yoshi
プラグインなどで外部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と同じ。あまり使うことはなさそうですが。
This plugin doesn’t work with WP2.1. Please use the updated version.
検索
紹介
Archive for yoshi.
Longer entries are truncated. Click the headline of an entry to read it in its entirety.アーカイブ
カテゴリー
- wordpress (3)