特定の管理画面でのみ発生する admin_head, footer フック
WordPress でプラグインなどを開発する際、例えば、特定の管理画面でのみ css や js を追加したいということがあります。
admin_head
ないし admin_footer
アクションは、管理画面全体で発生するアクションで、
これにフックすれば良さそうですが、条件分岐の実装が面倒で、スマートではありません。
そこで WordPress に用意されている admin_head-*
または admin_footer-*
アクションを使います。
-*
には、特定のページを示す、スラッグが入ります。
スラッグは add_options_page から得られる
admin_head-*
の -*
に入る文字列は、オプションページを追加するための関数 add_otpions_page
の戻り値から得られます。
例えば、私が開発しているプラグインの例では次のように add_options_page
関数を使っています。
add_options_page('KARAKURI Media Controller',
'KARAKURI Media Controller',
'administrator',
'submenupage_karakuri_media_ctrlr',
'output_submenupage_karakuri_media_ctrlr');
このとき、add_options_page
関数の戻り値は、settings_page_submenupage_karakuri_media_ctrlr
です。
したがって、もしここで追加したページでのみ実行されるアクションにフックしたいなら、
admin_head-settings_page_submenupage_karakuri_media_ctrlr
または admin_footer-settings_page_submenupage_karakuri_media_ctrlr
アクションにフックします。