删除使用 function(){...} wordpress 定义的操作
remove actions defined with function(){...} wordpress
您知道如何删除 Wordpress 中的 actions 或 filters(来自在我的例子中是一个插件)当它们被这样定义时:
add_action('action_tag', 函数(){...});
要么
add_filter('filter_tag', 函数(){...});
它们是在函数 add_action 或 add_filter 中定义的,所以我不知道 'function_name' 我应该用它来删除它。
remove_action($tag, 我应该在这里放什么?, $priority);
您说的是 anonymous functions。要从过滤器或操作中删除匿名函数,您必须使用与添加它们时相同的函数体和优先级,如下所示:
// Add it.
add_filter( 'tag', function ( $param ) {
return $param;
}, 10, 1 );
// Remove it.
remove_filter( 'tag', function ( $param ) {
return $param;
}, 10 );
试试这个.. 这将删除所有匿名函数的挂钩
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;
您知道如何删除 Wordpress 中的 actions 或 filters(来自在我的例子中是一个插件)当它们被这样定义时:
add_action('action_tag', 函数(){...}); 要么 add_filter('filter_tag', 函数(){...});
它们是在函数 add_action 或 add_filter 中定义的,所以我不知道 'function_name' 我应该用它来删除它。
remove_action($tag, 我应该在这里放什么?, $priority);
您说的是 anonymous functions。要从过滤器或操作中删除匿名函数,您必须使用与添加它们时相同的函数体和优先级,如下所示:
// Add it.
add_filter( 'tag', function ( $param ) {
return $param;
}, 10, 1 );
// Remove it.
remove_filter( 'tag', function ( $param ) {
return $param;
}, 10 );
试试这个.. 这将删除所有匿名函数的挂钩
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;