WordPressでremove_actionが効かない時に確認すべきポイントをご紹介します。
アクションが上書きされていないか
WordPress本体に定義されたアクションを除去しようとした時によくあるケースです。
テーマファイル内で、除去しようとしたアクションを除去するための関数が定義されている場合に起こります。
function example_function() {
// 何かしらのアクションを除去.
remove_action( 'hook', 'name' );
// 代わりとなる処理
}
関数の優先度が一致しているか
remove_actionは次のように定義します。
remove_action( $tag, $function_to_remove, $priority, $accepted_args );
そして、除去するためには、パラメータである$function_to_removeと$priorityが必ず一致する必要があります。
$function_to_removeはわかりやすいですが、$priorityは見落としやすいポイントです。
function example_function() {
// アクションの追加
add_action( 'hook', 'name', '5' );
// 除去されない記載方法
remove_action( 'hook', 'name' );
// 適切に除去される記載方法
remove_action( 'hook', 'name', '5' );
}
