WordPress が動く途中の決まったタイミング(フック)に、自分の処理を足します。functions.php やプラグインで、いちばんよく使う関数です。
書き方
add_action( string $hook_name, callable $callback, int $priority = 10, int $accepted_args = 1 ): true
$hook_name:フックの名前(wp_enqueue_scripts・init・save_postなど)$callback:動かす関数$priority(省略できる):順番。小さいほど先に動きます。$accepted_args(省略できる):関数が受け取る引数の数。
使い方の例
// CSS を読み込む
add_action( 'wp_enqueue_scripts', function () {
wp_enqueue_style( 'my-style', get_stylesheet_uri(), array(), '1.0' );
} );
// 投稿を保存したときに動かす(引数を 3 つ受け取る)
add_action( 'save_post', 'my_save_post', 10, 3 );
function my_save_post( $post_id, $post, $update ) {
if ( wp_is_post_revision( $post_id ) ) {
return;
}
// ...
}
よくある間違い
- 引数が届かない:2 つ目からの引数を使うときは、
$accepted_argsにその数を書きます。省略すると 1 つしか届きません。 - remove_action() で外れない:足したときと同じ関数・同じ
$priorityで外します。無名関数で足したものは外せません。外す予定があるなら名前のある関数にします。 - フックが動いたあとに
add_action()しても動きません(例:initの中でafter_setup_themeに足す)。 - 値を変えて返したいときは
add_filter()です。add_action()は戻り値を使いません。
関連する関数
add_filter():値を変えて返すremove_action():足した処理を外すdo_action():自分でフックを作る



