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

説明

remove_action() は、add_action() で登録済みの関数をアクションフックから取り除く関数です。親テーマやプラグインの処理を無効化したいときに使います。

基本構文

remove_action( string $hook_name, callable $callback, int $priority = 10 ): bool

引数

  • $hook_name:フック名
  • $callback:削除するコールバック(登録時と同じもの)
  • $priority:登録時の優先度(既定10)

戻り値

削除できたら true、できなければ false。

使い方(サンプル)

// wp_head の絵文字スクリプトを外す
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );

注意点

  • 優先度が登録時と違うと削除できません。
  • 対象が登録された後に呼ぶ必要があります。テーマの場合は after_setup_theme や init など、遅めのフックの中で実行します。
  • クラスのメソッドはインスタンスが必要です。array( $obj, 'method' ) の形で指定します。無名関数は基本的に削除できません。

実務での使いどころ

  • プラグインやテーマが登録した処理を、外すとき。
  • 不要な標準の処理を、止めるとき(絵文字、バージョン情報の出力など)。

よくあるミスと対処

  • 登録時と、優先度(第3引数)が違うと、外れない。優先度は、完全に一致させる。
  • クラスのメソッドは、同じオブジェクトで指定する必要がある。
  • 無名関数は、外せない。
  • 登録される前に実行され、外れない。登録のあとに実行されるフック(init や wp_loaded)で呼ぶ。

NG例

remove_action( 'wp_head', 'wp_generator', 5 ); // 登録時の優先度(10)と違う

OK例

remove_action( 'wp_head', 'wp_generator' ); // 優先度が既定の10なら、省略できる

使い分け早見表

関数 役割
remove_action() 登録した処理を、外す
add_action() 処理を、登録する
has_action() 登録されているか確認する

関連項目

add_action()、remove_all_actions()、has_action()

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

コメント

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