WordPressの管理画面(ダッシュボード)は、サイト運営の中心となる場所です。この管理画面の機能を追加したり、表示をカスタマイズしたり、特定の操作時に独自の処理を割り込ませたりするために不可欠なのが「管理画面アクションフック」です。これらのフックを理解し活用することで、より効率的で使いやすい管理環境を構築したり、高度なプラグインやテーマ機能を実現したりできます。
この記事では、WordPressの管理画面で利用できる主要なアクションフックを、その実行タイミングや主な用途と共にチートシート形式でまとめました。プラグイン開発者、テーマ開発者、そしてサイトを深くカスタマイズしたいと考えるすべての方にとって、必携の情報となるでしょう。
アクションフックの基本的な使い方
アクションフックを利用するには、実行したい独自のPHP関数(コールバック関数)を定義し、それをadd_action()
関数を使って特定のアクションフックに登録(フックにかける)します。これにより、WordPressの処理がそのフックポイントに到達した際に、登録した関数が自動的に呼び出されます。
1 2 3 4 5 6 7 8 9 10 11 |
<?php // コールバック関数の定義 function my_admin_custom_function( $arg1, $arg2 ) { // 管理画面で実行したい処理 // 例: echo "現在のスクリーンID: " . $arg1->id; } // アクションフックに関数を登録 // add_action( 'フック名', 'コールバック関数名', 優先度, 受け取る引数の数 ); add_action( 'current_screen', 'my_admin_custom_function', 10, 2 ); ?> |
上記の例では、current_screen
フックにmy_admin_custom_function
を登録しています。優先度は数値が小さいほど早く実行され、デフォルトは10です。受け取る引数の数は、フックによって渡される引数の数に合わせて指定します。
管理画面主要アクションフック一覧
WordPressの管理画面で使用できる主要なアクションフックを機能カテゴリ別に分類しました。各フックの説明の冒頭には、その利用頻度や重要度を星の5段階評価で示しています。星の数の目安は以下の通りです。
★★★★★:ほぼ全ての開発で頻繁に利用され、基本かつ非常に重要なパラメータ
★★★★☆:高頻度で利用され、多くの一般的なカスタマイズで役立つ重要なパラメータ
★★★☆☆:中程度の頻度で利用され、特定の機能を実現する際に便利なパラメータ
★★☆☆☆:利用頻度はやや低めですが、特定の要件や細かな制御を行いたい場合に役立つパラメータ
★☆☆☆☆:利用頻度は低く、非常に限定的な状況や高度なカスタマイズでのみ使用されるパラメータ
カテゴリ | フック名 | 主な役割・用途 (重要度/利用頻度) | 渡される主な引数 | 実行タイミングの補足 / 具体的なユースケース |
---|---|---|---|---|
管理画面初期化・ロード | admin_init |
★★★★★ 管理画面のほぼ全てのページで、ヘッダーが出力される前に実行されます。設定の登録、リダイレクト処理、権限チェックなど、多くの初期化処理に適しています。 |
なし | Settings API (register_setting , add_settings_section , add_settings_field ) の実行、特定の管理画面へのアクセス時処理、POST/GETリクエストの処理。 |
load-{pagenow} (例: load-edit.php , load-post.php ) |
★★★★☆ 特定の管理画面ページがロードされる直前に実行されます。 pagenow には現在のファイル名が入ります。 |
なし | 特定の管理ページでのみ必要な処理(スクリプトの条件付き読み込み準備、ヘルプタブの追加など)の起点として。get_current_screen() と併用することも。 |
|
current_screen |
★★★☆☆ 現在の管理画面のスクリーン情報 ( WP_Screen オブジェクト) が設定された直後に実行されます。 |
WP_Screen |
スクリーンID ($current_screen->id ) などに基づいて、条件付きで処理を行いたい場合に便利です。 |
|
メニュー関連 | admin_menu |
★★★★★ 管理画面のメニュー構造が構築される際に実行されます。カスタムメニューページやサブメニューページを追加するのに使います。 |
なし | add_menu_page() , add_submenu_page() , remove_menu_page() などの関数を使用。 |
admin_bar_menu |
★★★☆☆ 管理バー(ツールバー)のメニュー項目が構築される際に実行されます。独自の項目を追加したり、既存の項目を変更・削除したりできます。 |
WP_Admin_Bar |
$wp_admin_bar->add_node() , $wp_admin_bar->remove_node() などを使用。 |
|
スクリプト・スタイル・ヘッダー・フッター | admin_enqueue_scripts |
★★★★★ 管理画面でJavaScriptファイルやCSSファイルを読み込むために使います。特定のページでのみ読み込ませる条件分岐が重要です。 |
string $hook_suffix (現在の管理ページのフックサフィックス) |
wp_enqueue_script() , wp_enqueue_style() を使用。$hook_suffix でページを特定。 |
admin_head |
★★★☆☆ 管理画面の各ページの タグ内に、直接HTMLやインラインCSS/JavaScriptを出力する場合に使います。 |
なし | 例:
|