管理バーに $hook_suffix の値を表示する

admin_headadmin_footer といったいくつかのアクションでは特定の画面にのみ処理を適用するための仕組みが用意されており、基本的にはアクション名の後ろに「-」(ハイフン)と「post.php」(投稿 編集画面)「post-new.php」(投稿 新規画面)「edit.php」(投稿 一覧画面)のような画面ファイル名をつけることで画面を特定できるようになっています。

上記のファイル名の部分は「$hook_suffix」などと呼ばれますが、どの画面でどの値を使えばいいかがわかりづらい(特にプラグインの設定ページなどだと使える値がファイル名ではない)ため$hook_suffix を調べるためのサポートとして管理バーに $hook_suffix の値を表示するとよいかもしれません。これには、functions.phpに下記のように記載します。

結果

補足

  • admin_headを特定のページでのみ使用するにはhook_suffixを知るべし | Firegoby」さんで言及されていますが、一部の $hook_suffix は言語によって変わるようです。WordPress 4.5.3時点では add_menu_page() で追加したプラグインページ(トップレベル)は「toplevel_page_{メニュースラッグ名}」、add_submenu_page() で追加したプラグインページ(サブ)は「{トップレベルのメニュー名をsanitize_title()した値}_page_{メニュースラッグ名}」になっているため、サブの $hook_suffix を確実に特定するのは少し手間がかかります。( get_plugin_page_hookname() を利用することで確実に $hook_suffix の値を取得することができますが、そこまで必要になるケースはあまりない気がします)

コメント

内容の誤りなどがありましたら下記からご連絡をお願いします。頂いたコメントは基本的に公開されることはありません(必要な場合は個別に返信させて頂きます)。

CAPTCHA