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

説明

remove_filter() は、add_filter() で登録したコールバックをフィルターフックから取り除く関数です。

基本構文

remove_filter( string $hook_name, callable|string|array $callback, int $priority = 10 ): bool

引数

  • $hook_name:フィルターフック名
  • $callback:削除するコールバック
  • $priority:登録時の優先度

戻り値

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

使い方(サンプル)

remove_filter( 'the_content', 'wpautop' );

注意点

  • 優先度が一致しないと削除できません。
  • 削除のタイミングが登録より前だと効きません。
  • remove_action() は内部的にこの関数と同じ動作です。

実務での使いどころ

  • 登録されたフィルターの処理を、外すとき。
  • 標準の加工(自動の段落、整形など)を、止めるとき。

よくあるミスと対処

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

NG例

remove_filter( 'the_content', 'wpautop', 5 ); // 登録時の優先度は 10

OK例

remove_filter( 'the_content', 'wpautop' ); // 本文の自動整形を止める

使い分け早見表

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

関連項目

add_filter()、remove_all_filters()、has_filter()

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

コメント

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