删除用function(){...} wordpress定义的动作

时间:2018-01-27 19:03:49

标签: php wordpress hook

您是否知道如何在 Wordpress 中删除操作过滤器(在我的案例中来自插件)这样:

add_action('action_tag',function(){...}); 要么 add_filter('filter_tag',function(){...});

它们是在函数 add_action add_filter 中定义的,所以我没有线索'function_name'我应该用来删除它。

remove_action($ tag, 我应该在这里放什么? ,$ priority);

2 个答案:

答案 0 :(得分:0)

您在谈论anonymous functions。要从过滤器或操作中删除匿名函数,您必须使用与添加它们时使用的相同的函数体和优先级,如下所示:

// Add it.
add_filter( 'tag', function ( $param ) {
    return $param;
}, 10, 1 );

// Remove it.
remove_filter( 'tag', function ( $param ) {
    return $param;
}, 10 );

答案 1 :(得分:0)

试试这个..这将删除所有匿名函数的挂钩

global $wp_filter;
foreach ( $wp_filter as $filter_name => $filter_properties ):
        foreach ( $filter_properties->callbacks as $priority ):
            foreach( $priority as $function ):
                if( is_object( $function["function"] ) == true ):
                    unset( $wp_filter[ $filter_name ] );
                endif;
            endforeach;
        endforeach;
endforeach;