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

説明

did_filter() は、指定したフィルターが、現在のリクエスト中に何回実行されたかを返す関数です。

基本構文

did_filter( string $hook_name ): int

引数

  • $hook_name:フィルター名

戻り値

実行回数(int)。

使い方(サンプル)

$n = did_filter( 'the_content' );

注意点

  • WordPress 6.1 で追加された関数です。それ以前のバージョンでは使えません。

実務での使いどころ

  • あるフィルターが、すでに適用されたか(何回適用されたか)を、確認するとき。

よくあるミスと対処

  • アクションの実行回数を調べるつもりで、使っている。アクションには、did_action() を使う。
  • 戻り値は、適用された回数(整数)。真偽値として扱うと、複数回で混乱する。

NG例

if ( did_filter( 'init' ) ) { // init はアクション
	// ...
}

OK例

if ( did_action( 'init' ) ) {
	// アクションには did_action
}

使い分け早見表

関数 役割
did_filter() フィルターが、何回、適用されたか
did_action() アクションが、何回、実行されたか
doing_filter() いま、適用中か

関連項目

did_action()、has_filter()、doing_filter()

公式リファレンス:did_filter() | Function | WordPress Developer Resources

コメント

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