説明
current_action() は、現在実行中のアクションフック名を返す関数です。1つのコールバックを複数のフックで使うときに、どのフックから呼ばれたかを調べられます。
基本構文
current_action(): string|false
引数
引数はありません。
戻り値
フック名。実行中でなければ false。
使い方(サンプル)
function my_log() {
error_log( current_action() );
}
add_action( 'init', 'my_log' );
add_action( 'wp_loaded', 'my_log' );
注意点
- フィルターの場合は
current_filter()を使います(アクションもフィルターの一種のため、current_filter()でも取得可能)。
実務での使いどころ
- 1つのコールバックを、複数のアクションに登録したとき、どのアクションから呼ばれたかを、知るとき。
よくあるミスと対処
- コールバックの外で呼び、意味のある値にならない。
- フィルターの名前を取得したいのに、使っている。フィルター名は、
current_filter()(アクションでも、同じ値を返す)。
NG例
echo current_action(); // コールバックの外では、意味がない
OK例
function my_callback() {
if ( 'init' === current_action() ) {
// init から呼ばれたとき
}
}
add_action( 'init', 'my_callback' );
add_action( 'wp_loaded', 'my_callback' );
使い分け早見表
| 関数 | 役割 |
|---|---|
current_action() |
いま、実行中のアクション名 |
doing_action() |
特定のアクションが、実行中か |
current_filter() |
いま、実行中のフィルター(またはアクション)名 |
関連項目
current_filter()、doing_action()
公式リファレンス:current_action() | Function | WordPress Developer Resources

コメント