删除使用function(){...} wordpress定义的操作
你有一个想法如何去除Wordpress中的动作或过滤器(从我的例子中的插件),当它们被定义为如此时:
add_action('action_tag',function(){...}); 或add_filter('filter_tag',function(){...});
它们是在函数add_action或add_filter中定义的,所以我没有线索女巫'function_name'我应该用它来删除它。
remove_action($ tag, 我应该在这里放什么? ,$ priority);
你在谈论匿名功能。 要从过滤器或操作中移除匿名函数,您必须使用与添加它们时所用的相同的函数体和优先级,如下所示:
// 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;
链接地址: http://www.djcxy.com/p/57353.html