remove_action()


WordPressの関数remove_action()は、特定のアクションフックから既存のコールバックを削除するために使用されます。

シンタックス

remove_action( string $tag, callable $function_to_remove, int $priority = 10 );

引数の説明:

  • $tag (string) — 削除するアクションフックの名前。
  • $function_to_remove (callable) — 削除する関数またはメソッド。
  • $priority (int) — 削除対象の関数が登録されている優先度。デフォルトは10

例 1: ヘッダーのスクリプトを削除する

特定のスクリプトをWordPressのヘッダーから削除します。

<?php
function remove_default_scripts() {
    remove_action( 'wp_head', 'wp_generator' );
}
add_action( 'init', 'remove_default_scripts' );
?>

例 2: カスタム関数を削除する

独自に追加した関数をフックから削除します。

<?php
function my_custom_function() {
    // 処理内容
}
add_action( 'wp_footer', 'my_custom_function', 15 );

function remove_my_custom_function() {
    remove_action( 'wp_footer', 'my_custom_function', 15 );
}
add_action( 'init', 'remove_my_custom_function' );
?>

例 3: プラグインの関数を削除する

特定のプラグインが追加したアクションを無効化します。

<?php
function disable_plugin_action() {
    remove_action( 'woocommerce_before_shop_loop', 'woocommerce_output_all_notices', 10 );
}
add_action( 'init', 'disable_plugin_action' );
?>

例 4: 優先度の違いによる削除

優先度を指定して関数を削除します。

<?php
function add_custom_function() {
    // 処理内容
}
add_action( 'wp_head', 'add_custom_function', 5 );

function remove_custom_function() {
    remove_action( 'wp_head', 'add_custom_function', 5 );
}
add_action( 'init', 'remove_custom_function' );
?>

例 5: アクションの条件付き削除

条件に基づいてアクションを削除します。

<?php
function conditional_remove_action() {
    if ( is_admin() ) {
        remove_action( 'wp_head', 'wp_resource_hints', 2 );
    }
}
add_action( 'init', 'conditional_remove_action' );
?>

注意事項

remove_action()を使用する場合、$function_to_remove$priorityが正確に一致していないと削除が失敗します。正確な登録情報を確認することが重要です。


関連機能: