web-dev-qa-db-ja.com

フックがフックされているかどうかを確認する方法は?

例えば:

if ( is_hooked('hook_name') ) {
  throw new \Exception('You cannot hook to a protected action.');
} else {
  do_action('hook_name');
}

is_hooked()関数を定義する方法はありますか?

5
MinhTri

確かに、それは has_action と呼ばれ、 has_filter のエイリアスです。使用法:

if ( has_action('hook_name') ) {
  throw new \Exception('You cannot hook to a protected action.');
} else {
  do_action('hook_name');
}

これら2つの関数はグローバル配列 $wp_filter にアクセスし、すべてのフィルタ/アクションを格納します。

4
cjbj