current_action() の使い方|説明・引数・注意点

説明

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

コメント

タイトルとURLをコピーしました