[wp-trac] Re: [WordPress Trac] #3875: Proposal for a new plugin
architecture
WordPress Trac
wp-trac at lists.automattic.com
Tue Jul 31 17:02:24 GMT 2007
#3875: Proposal for a new plugin architecture
----------------------------------------------------------------------------------+
Reporter: FraT | Owner: ryan
Type: defect | Status: reopened
Priority: normal | Milestone: 2.2.2
Component: Optimization | Version: 2.1.1
Severity: normal | Resolution:
Keywords: 2nd-opinion plugin plugins plugin.php filters $wp_filter wp-includes |
----------------------------------------------------------------------------------+
Comment (by santosj):
It is simple to fix.
Just check to see that $function_to_add is an array and if it is, then
take the first key ( $function_to_add[0] ) and see if it is an object or a
string. If it is an object, then get the name (
get_class($function_to_add[0]) ) and use that for the serialized part.
It may decrease the speed a little bit, but it will fix the previous
issues. And actually, for plugins and internal code that uses functions,
it won't affect the speed at all (or so in my humble opinion).
{{{
function add_filter($tag, $function_to_add, $priority = 10, $accepted_args
= 1) {
global $wp_filter;
$serialized = &$function_to_add;
if(is_array($function_to_add))
{
if(is_object($function_to_add[0]))
{
$serialized = array(get_class($function_to_add[0]),
$function_to_add[1]);
}
}
$wp_filter[$tag][$priority][serialize($serialized)] = array('function'
=> $function_to_add, 'accepted_args' => $accepted_args);
return true;
}
}}}
In theory, this should work.
--
Ticket URL: <http://trac.wordpress.org/ticket/3875#comment:10>
WordPress Trac <http://trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list