1. WordPress

【WordPress】アクションフックを理解しよう。add_action()・do_action()の使い方を解説

Share

WordPressの柔軟な拡張性の中核を担う仕組みのひとつが「アクションフック」です。

本記事では、add_action()do_action() の基本的な使い方から、実践的な活用例までをわかりやすく解説します。

アクションフックの使い方を知りたい方は、ぜひ本記事をチェックしてください。

アクションフックとは?

アクションフック(Action Hook)は、WordPressが特定のタイミングで処理を実行するために用意したポイントです。

テーマやプラグイン開発者は、このタイミングで独自の関数を登録して追加の処理を行えます。

アクションフックがあることで、テーマやプラグインを直接編集しなくても、関数の処理を独自にカスタマイズすることができます。

たとえば、投稿が保存された後にログを出力したり、ページのフッター部分にバナーを表示したりといった、「何かを実行する」ために使います。

add_action() の基本構文

add_action() は、アクションフックに独自の関数を登録するための関数です。

add_action( $hook_name, $callback_function, $priority, $accepted_args );
  • $hook_name:アクションフック名(例:wp_footer
  • $callback_function:呼び出す関数名
  • $priority(省略可):実行順序の優先度(デフォルトは10、数値が小さいほど先に実行)
  • $accepted_args(省略可):コールバック関数が受け取る引数の数(デフォルトは1)

do_action() の基本構文

do_action() は、登録されたすべてのアクション関数を呼び出すための関数です。
通常、WordPressコアやテーマ、プラグイン内の処理ポイントに設置されています。

do_action( $hook_name, ...$args );
  • $hook_name:アクションフック名
  • ...$args:コールバックに渡す任意の引数

実際の使用例

フッターにカスタムメッセージを追加する

function add_custom_footer_message() {
  echo '<p style="text-align:center;">© 2025 あなたのサイト名</p>';
}
add_action( 'wp_footer', 'add_custom_footer_message' );

このコードは、サイトのフッター部分に著作権メッセージを表示します。

独自アクションフックを作成し、処理を追加する

テーマやプラグイン内で独自のアクションフックを定義して、拡張ポイントを設けられます。

// 独自アクションの呼び出し
do_action( 'my_custom_action', 'パラメータ1', 123 );

// アクションに登録する関数
function my_custom_action_function( $param1, $param2 ) {
  echo "パラメータ1は {$param1}、パラメータ2は {$param2} です。";
}
add_action( 'my_custom_action', 'my_custom_action_function', 10, 2 );

よく使われるアクションフックの例

  • init:WordPressの初期化時
  • wp_enqueue_scripts:スクリプト・スタイルの読み込み時
  • wp_footer:フッター部分の出力時
  • admin_menu:管理画面メニューの構築時

アクションフックを使う際の注意点

  • 戻り値は必要ない:アクションフックのコールバック関数は処理を実行するだけで、値を返す必要はありません。
  • ユニークな関数名を使う:他と競合しないようにプレフィックスなどを付けるのがベターです。
  • 優先度を調整して処理の順番を制御できる:複数の関数が登録されている場合に有効です。

フィルターフックとの違い

比較項目アクションフックフィルターフック
主な目的処理の追加・実行データの変更・加工
戻り値なし必須(値を返す)
使用例wp_footer, initthe_content, the_title

アクションフックは、WordPressが特定の処理を行う「タイミング」で、追加の処理(関数)を実行したいときに使います。

フィルターフックは、WordPress内部の「データが処理される途中」に割り込んで、そのデータを変更・加工したいときに使います。

  • アクションフックは「何かを実行したいとき」に使う。→ 処理の追加
  • フィルターフックは「データを変更したいとき」に使う。→ 値の加工・上書き

まとめ

アクションフックはWordPressの拡張を可能にする強力な仕組みです。

add_action() で処理を登録し、do_action() で登録された処理を呼び出す流れを理解することで、テーマやプラグインの柔軟なカスタマイズが実現します。

参考リンク