説明
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

コメント