WordPress.org

Make WordPress Core

Ticket #17817: 17817.patch

File 17817.patch, 1.6 KB (added by SergeyBiryukov, 6 years ago)
  • wp-includes/plugin.php

     
    161161                $merged_filters[ $tag ] = true;
    162162        }
    163163
    164         reset( $wp_filter[ $tag ] );
    165 
    166164        if ( empty($args) )
    167165                $args = func_get_args();
    168166
    169         do {
    170                 foreach( (array) current($wp_filter[$tag]) as $the_ )
    171                         if ( !is_null($the_['function']) ){
     167        foreach ( $wp_filter[ $tag ] as $filters ) {
     168                foreach( (array) $filters as $the_ ) {
     169                        if ( ! is_null( $the_['function'] ) ) {
    172170                                $args[1] = $value;
    173                                 $value = call_user_func_array($the_['function'], array_slice($args, 1, (int) $the_['accepted_args']));
     171                                $value = call_user_func_array( $the_['function'], array_slice( $args, 1, (int) $the_['accepted_args'] ) );
    174172                        }
     173                }
     174        }
    175175
    176         } while ( next($wp_filter[$tag]) !== false );
    177 
    178176        array_pop( $wp_current_filter );
    179177
    180178        return $value;
     
    222220                $merged_filters[ $tag ] = true;
    223221        }
    224222
    225         reset( $wp_filter[ $tag ] );
     223        foreach ( $wp_filter[ $tag ] as $filters ) {
     224                foreach( (array) $filters as $the_ ) {
     225                        if ( ! is_null( $the_['function'] ) ) {
     226                                $args[0] = call_user_func_array( $the_['function'], array_slice( $args, 0, (int) $the_['accepted_args'] ) );
     227                        }
     228                }
     229        }
    226230
    227         do {
    228                 foreach( (array) current($wp_filter[$tag]) as $the_ )
    229                         if ( !is_null($the_['function']) )
    230                                 $args[0] = call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args']));
    231231
    232         } while ( next($wp_filter[$tag]) !== false );
    233 
    234232        array_pop( $wp_current_filter );
    235233
    236234        return $args[0];