您是否知道如何在 Wordpress 中删除操作或过滤器(在我的案例中来自插件)这样:
add_action('action_tag',function(){...}); 要么 add_filter('filter_tag',function(){...});
它们是在函数 add_action 或 add_filter 中定义的,所以我没有线索'function_name'我应该用来删除它。
remove_action($ tag, 我应该在这里放什么? ,$ priority);
答案 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;