Make WordPress Core

Ticket #15030: meta_recursive_unserialize.diff

File meta_recursive_unserialize.diff, 1.1 KB (added by mattkeys, 10 years ago)

Recursive unserialize meta

  • wp-includes/functions.php

     
    255255}
    256256
    257257/**
     258 * Callback for array_walk_recursive when unserializing meta data that was requested without specifying a meta key
     259 *
     260 * @param string $original passed by reference, maybe unserialize original, if it is needed.
     261 * @return mixed Unserialized data can be any type.
     262 */
     263function maybe_unserialize_callback( &$original ) {
     264        return $original = maybe_unserialize( $original );
     265}
     266
     267/**
    258268 * Unserialize value only if it was serialized.
    259269 *
    260270 * @since 2.0.0
  • wp-includes/meta.php

     
    478478                $meta_cache = $meta_cache[$object_id];
    479479        }
    480480
    481         if ( !$meta_key )
     481        if ( !$meta_key ) {
     482                if ( is_array( $meta_cache ) ) {
     483                        array_walk_recursive( $meta_cache, 'maybe_unserialize_callback');
     484                }
     485
    482486                return $meta_cache;
     487        }
    483488
    484489        if ( isset($meta_cache[$meta_key]) ) {
    485490                if ( $single )