id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc,focuses
22256,Hook namespacing,scribu,,"Currently, callbacks passed to add_action() and add_filter() are already sort of namespaced by the hook name, by priority and by the callback itself. You need to know all of them in order to use `remove_action()` successfully.
Acquiring the callback is especially problematic when it's:
* an instance method, and you don't have access to the instance
* a PHP 5.3 closure
Introducing namespaces for hooks, similar to jQuery's [http://docs.jquery.com/Namespaced_Events namespaced events], would not only take care of that problem, but also enable things like removing all callbacks added by plugin X, regardless of hook name or anything else.
Proposed syntax:
{{{
add_action( 'after_setup_theme:twentytwelve', function() {
// do stuff
}
add_action( 'after_setup_theme:twentytwelve', function() {
// do more stuff
}
add_filter( 'posts_clauses:p2p', function( $clauses ) {
// do stuff
}
}}}
Later:
{{{
// remove specific callbacks added by the Twentytwelve theme
remove_action( 'after_setup_theme:twentytwelve' );
// remove all callbacks added by the P2P plugin
remove_action( '*:p2p' );
}}}
Source: http://core.trac.wordpress.org/ticket/22250#comment:14",enhancement,new,normal,Awaiting Review,Plugins,,normal,,,,