ページフック名を指定したadmin_print_scriptsフックの利用
-
アクションフックの「admin_print_scripts」は、「admin_print_scripts-ページフック名」とすることで、特定のページにのみJavaスクリプトを組み込めるようなので、プラグインで生成したオプションパネルにのみJavaスクリプトを組み込むために
add_action('admin_menu', 'my_register_menu_item'); function my_register_menu_item() { register_setting('my-settings-group', 'my_value1'); register_setting('my-settings-group', 'my_value2'); . . . add_option('my_value1', 1); add_option('my_value2', 1); . . . add_options_page('My plugin Options', 'My plugin', 'manage_options', 'my-plugin-options', 'my_plugin_options_panel'); } . . . add_action('admin_print_scripts', 'my_jscript_for_admin'); function my_jscript_for_admin(){ wp_enqueue_script('my_js', 'XXXX/my-script.js', false, '1.0'); }
を
http://wpdocs.sourceforge.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3_API/%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%95%E3%83%83%E3%82%AF%E4%B8%80%E8%A6%A7
http://wpdocs.sourceforge.jp/Adding_Contextual_Help_to_Administration_Menusを参考にして
add_action('admin_menu', 'my_register_menu_item'); function my_register_menu_item() { register_setting('my-settings-group', 'my_value1'); register_setting('my-settings-group', 'my_value2'); . . . add_option('my_value1', 1); add_option('my_value2', 1); . . . global $my_page_hook; $my_page_hook = add_options_page('My plugin Options', 'My plugin', 'manage_options', 'my-plugin-options', 'my_plugin_options_panel'); } . . . add_action("admin_print_scripts-$my_page_hook", 'my_jscript_for_admin'); function my_jscript_for_admin(){ wp_enqueue_script('my_js', 'XXXX/my-script.js', false, '1.0'); }
に変更しました。
add_options_page()
の返り値が、ページフック名になるようなので、返り値を$my_page_hook
に格納し、グローバル化しています。ところが、上手く機能していないようで、スクリプトは追加されず、エラーも発生しません。
しかし、
$my_page_hook
には、ページフック名がきちんと格納されています。値は
settings_page_サブメニューのスラッグ
※サブメニューのスラッグ =add_options_page()
の第4引数になっていました。
ちなみに
add_action('admin_print_scripts-'.$my_page_hook, 'my_jscript_for_admin');
とした場合も同じ結果になります。
最悪、
add_action('admin_print_scripts-settings_page_サブメニューのスラッグ', 'my_jscript_for_admin');
とすれば上手く行くのですが、ベタ書きは避けたいので、お分かりになる方がおられましたら、どうかご教示下さい。
- トピック「ページフック名を指定したadmin_print_scriptsフックの利用」には新たに返信することはできません。