特定の管理画面でのみ発生する admin_head, footer フック

WordPressのロゴ。

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アクションにフックします。