いやー、知らなかったー。こんなフックがあったんだな〜。
自作プラグインが管理画面用の場合、フック名admin_enqueue_scriptsというのがあった。
使い方わからんかったんだけど、以下のサイトを参考にしたらできた。
http://lesterchan.net/wordpress/2009/01/26/loading-javascript-in-footer-in-wordpress-28/
// 架空のhogeプラグイン内のphpファイル // 管理画面なら関数hoge_script_adminを呼び出す add_action('admin_enqueue_scripts', 'hoge_script_admin'); function hoge_script_admin($hook_suffix){ // CSS,JSを読み込みたいページを配列に持たせる。ここでは新規投稿、編集画面 $post_pages = array('post.php', 'post-new.php'); if(in_array($hook_suffix, $post_pages)){ /** * @param string ユニークなハンドル名 * @param string 読み込みたいCSSファイルのパス * @param mixed? 依存するCSSライブラリ? * @param string バージョン * @param string メディアタイプ */ wp_enqueue_style('hoge', plugins_url('hoge/css/hoge.css'), false, '1.0', 'all'); /** * @param string ユニークなハンドル名 * @param string 読み込みたいJSファイルのパス * @param array 依存するJSライブラリのハンドル * @param string バージョン * @param boolean falseならヘッダーで読み込み trueならフッターで読み込み */ wp_enqueue_script('hoge', plugins_url('hoge/js/hoge_admin.js'), array('prototype'), '1.0', false); } }
こうすることで、既にWordPress側で準備しているJSライブラリを使うことができる。プラグイン側で独自にライブラリを準備すると同じライブラリを読み込んだりすることがある。その影響で誤動作や、処理が重たくなったりする。しかしこれを使えば多重読み込みによる誤動作も発生しなくなるだろうし、なにより軽いはず。
いや〜、知らんかったっす…。WordPress 2.8からかな?