【保存版】WordPressのadd_actionフック一覧まとめ|初心者向けに用途別で解説

ホーム WordPress 関数の使い方 【保存版】WordPressのadd_actionフック一覧まとめ|初心者向けに用途別で解説
クラウドソーシング「ランサーズ」
【保存版】WordPressのadd_actionフック一覧まとめ|初心者向けに用途別で解説

この記事で紹介するadd_actionフック一覧の使い方ガイド

WordPress の add_action() は、特定の「フック(hook)」ポイントに自分の関数を追加する仕組みです。ここでは代表的で実用的な アクションフック(Action Hooks) をカテゴリ別に一覧で紹介します(※すべてではありませんが、よく使われるものを可能な限り網羅しています)。

🔧 初期化系フック

フック名 説明
muplugins_loaded 必須プラグイン(mu-plugins)読み込み後に実行。
plugins_loaded すべてのプラグイン読み込み完了後に実行。プラグイン間の依存関係設定など。
setup_theme テーマが読み込まれる直前に実行。
after_setup_theme テーマの初期化に使用。add_theme_support() などここで実行。
init WordPress の初期化時に実行。カスタム投稿タイプ・ショートコード登録など。
register_post_type カスタム投稿タイプを登録する際の処理を追加したいときに。
register_taxonomy カスタムタクソノミーを登録する際の処理を追加したいときに。
widgets_init ウィジェットエリア(サイドバー)を登録する際に使用。
wp_loaded WordPress の完全な読み込み後(リクエスト処理直前)に実行。
parse_request $wp オブジェクトにアクセスできるようになったタイミング。カスタムルーティングなど。
pre_get_posts クエリ実行前に WP_Query を操作。表示投稿のフィルタリングに便利。
template_redirect テンプレート読み込み前に実行。リダイレクトやテンプレート切り替えに使用。

🧑‍💻 管理画面関連

フック名 説明
admin_init 管理画面読み込み時に実行。設定登録やバリデーションに使用。
admin_menu 管理メニュー追加時に使用。add_menu_page()など。
admin_enqueue_scripts 管理画面のJS/CSSを読み込むときに使用。
current_screen 現在表示している管理画面の情報を取得可能。
load-{$page_hook} 特定の管理画面読み込み時に実行。$page_hookadd_menu_page などで得られる。
admin_notices 管理画面上部に通知(メッセージ)を表示するときに使う。
all_admin_notices すべての管理画面通知の後に実行。
restrict_manage_posts 投稿一覧ページに絞り込み用UIを追加可能。
manage_{$post_type}_posts_custom_column カスタム投稿タイプの一覧にカスタム列の出力を追加。
manage_{$post_type}_posts_columns カスタム投稿タイプ一覧の列ヘッダー定義を変更。
bulk_edit_custom_box 一括編集画面に独自フィールドを追加可能。
edit_form_after_title 投稿編集画面のタイトル下にコンテンツ追加。
edit_form_after_editor 投稿編集画面の本文エディタ下にコンテンツ追加。
submitpost_box 「公開」ボックスのカスタマイズ。
add_meta_boxes メタボックスを登録するタイミング。
save_post 管理画面から投稿が保存されたときに実行(データ保存など)。
admin_footer 管理画面フッター部分でJSを出力したいときに使用。
admin_head 管理画面の<head>内にCSSなど追加可能。

🌐 表示・テーマ関連

フック名 説明
wp_head <head>内に挿入。CSSやmetaなど追加可能。
wp_footer </body>前に出力。JSなどを追加するのに便利。
wp_enqueue_scripts フロント用のCSS/JS登録に使用。
get_header header.phpが読み込まれる直前に実行。
get_footer footer.phpが読み込まれる直前に実行。
get_sidebar sidebar.phpが読み込まれる直前に実行。
get_template_part_{$slug} get_template_part()使用時に実行されるカスタムフック。
template_redirect テンプレートが表示される直前に実行。リダイレクト処理などに便利。
wp_body_open <body>タグ直後に出力。アクセシビリティ対応などで利用。
loop_start WordPressループ開始時に実行。投稿リストに変更を加えたい時に便利。
loop_end WordPressループ終了時に実行。
the_post ループ内の各投稿を処理する直前に実行。個別に加工可能。

💬 投稿・保存・編集

フック名 説明
save_post 投稿・固定ページ・カスタム投稿タイプの保存時に実行。
save_post_{$post_type} 特定の投稿タイプ保存時に実行。例:save_post_job
wp_insert_post 投稿データが挿入・更新されるときに実行(保存前の段階)。
edit_post 既存投稿が編集されたときに実行。
publish_post 投稿が「公開」されたときに実行(post投稿タイプのみ)。
publish_{$post_type} 指定の投稿タイプが「公開」されたときに実行。例:publish_job
transition_post_status 投稿のステータスが変更されるときに実行(どの状態でも)。
draft_to_publish ステータスが draft から publish に変わるときに実行。
new_to_publish 新規投稿(new)が公開されたときに実行。
pending_to_publish 「レビュー待ち」から「公開」に変更されたときに実行。
delete_post 投稿削除時に実行(ゴミ箱移動を含む)。
trashed_post 投稿がゴミ箱に入れられたときに実行。
untrash_post 投稿がゴミ箱から復元されたときに実行。
before_delete_post 投稿が完全削除される直前に実行。
wp_trash_post 投稿がゴミ箱に送られるときに実行。
add_meta_boxes 投稿編集画面にメタボックスを追加する際に実行。
add_meta_boxes_{$post_type} 特定の投稿タイプの編集画面にメタボックスを追加。
edit_form_after_title 投稿編集画面のタイトル入力欄の下にコンテンツを追加。
edit_form_after_editor 本文エディタの下に追加コンテンツを挿入。
post_submitbox_misc_actions 「公開」ボックス内のカスタム項目を追加可能。
post_updated 投稿が更新された後(新旧データあり)。wp_insert_post()の後に発火。

🧑 ユーザー関連

フック名 説明
user_register ユーザーが登録された直後に実行。ユーザーデータの追加保存などに使用。
wp_login ユーザーがログインした直後に実行。ログイン履歴の記録などに使える。
wp_logout ユーザーがログアウトした時に実行。
auth_cookie_valid 認証クッキーが有効と判断された後に実行。
authenticate ログイン処理中の認証ステップで実行(バリデーションや制限などに使用)。
login_form_login ログインフォームが表示されたときに実行。
login_form_register 新規ユーザー登録フォームの表示時に実行。
login_form_lostpassword パスワードリセット画面表示時に実行。
retrieve_password パスワードリセットリクエストが送信されたときに実行。
password_reset パスワードがリセットされた後に実行。
profile_update ユーザープロフィールが更新されたときに実行。
personal_options_update ユーザーが自身のプロフィールを更新したときに実行。
edit_user_profile_update 管理者が他人のユーザープロフィールを更新したときに実行。
delete_user ユーザーが削除されるときに実行。
deleted_user ユーザー削除完了後に実行。
show_user_profile ユーザー自身のプロフィール画面表示時に追加出力する場合に使用。
edit_user_profile 管理者が他人のプロフィール画面を編集表示するときに追加出力。
user_request_action_confirmed 個人データのエクスポート・削除要求が確定されたときに実行。

🛠️ その他便利フック

フック名 説明
shutdown PHP 処理終了時に実行。ログ保存やエラーハンドリングに便利。
wp WPクエリオブジェクトが準備された直後に実行。
parse_query クエリ変数の解析が完了した直後に実行。
pre_get_posts クエリ実行直前。表示条件を変更したいときに便利。
send_headers HTTPヘッダーが送信される直前に実行。
http_api_debug WP_HTTP の通信デバッグ時に発火。外部APIのログなどに。
rest_api_init REST API のエンドポイントを登録するタイミング。
rest_insert_{$this->post_type} REST API経由で投稿が登録されたときに発火。
template_redirect テンプレートファイルが読み込まれる直前に実行。リダイレクト処理など。
wp_redirect wp_redirect()実行時に発火。リダイレクトのURLを確認・変更したいとき。
locale 現在の言語ロケールを変更・取得したいときに使用(※これは filter でも使える)。
upgrader_process_complete プラグインやテーマのアップグレード完了後に実行。
schedule_event スケジュールイベントが追加されたときに実行。
wp_schedule_event 定期実行イベントの登録時に発火(wp-cron関連)。
cron_schedules wp-cron の実行間隔に独自スケジュールを追加したいとき。

🔍 フックを調べるには?

WordPressにはたくさんのフックが存在しますが、以下の方法で「どこで」「どんな名前のフックが使われているか」を簡単に調べることができます。

  • WordPress公式フック一覧
    WordPress開発者向けの公式リファレンスです。
    do_action()(アクションフック)や apply_filters()(フィルターフック)ごとに、発火タイミングや引数が詳しく記載されています。
  • プラグイン「Query Monitor」
    管理画面上で現在実行されているフックや、使用されているテンプレートファイルSQLクエリなどがリアルタイムで確認できます。開発者必須のデバッグツールです。
  • WordPressのソースコード内を検索
    フックはコード内で do_action('hook_name')apply_filters('hook_name') の形で記述されています。
    エディター(VS Codeなど)で do_action を検索すれば、どんなフックがどこで実行されているかを確認できます。
    例えば wp_headheader.php テンプレートで呼び出されています。

「この処理の前後で何かしたいな」と思ったら、その処理の前後に do_action() が使われていないかを探すと、最適なフックが見つかるはずです。

さいごに

WordPress の add_action() フック は、テーマやプラグイン開発において非常に重要な役割を果たします。本記事で紹介したフックを活用すれば、より柔軟なカスタマイズが可能になります。ぜひ活用してみてください!

Web制作のご依頼・ご相談など、お気軽にご連絡ください。

お問い合わせ