From ed9ee9a2da9270658082fda7e36f8f084af2b68e Mon Sep 17 00:00:00 2001 From: Peter Westwood Date: Wed, 31 Mar 2010 21:39:18 +0000 Subject: [PATCH] Ensure that apply_filters_ref_array passes the result of the filter to the next filter. Fixes #12723 props scribue. git-svn-id: https://develop.svn.wordpress.org/trunk@13906 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-includes/plugin.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/wp-includes/plugin.php b/wp-includes/plugin.php index f12087d8a4..709cdafc90 100644 --- a/wp-includes/plugin.php +++ b/wp-includes/plugin.php @@ -195,8 +195,6 @@ function apply_filters_ref_array($tag, $args) { $wp_current_filter[] = $tag; - $value = $args[0]; - // Do 'all' actions first if ( isset($wp_filter['all']) ) { $all_args = func_get_args(); @@ -205,7 +203,7 @@ function apply_filters_ref_array($tag, $args) { if ( !isset($wp_filter[$tag]) ) { array_pop($wp_current_filter); - return $value; + return $args[0]; } // Sort @@ -219,13 +217,13 @@ function apply_filters_ref_array($tag, $args) { do { foreach( (array) current($wp_filter[$tag]) as $the_ ) if ( !is_null($the_['function']) ) - $value = call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args'])); + $args[0] = call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args'])); } while ( next($wp_filter[$tag]) !== false ); array_pop( $wp_current_filter ); - return $value; + return $args[0]; } /**