WordPress.org

Make WordPress Core

Ticket #13319: 13319.patch

File 13319.patch, 3.6 KB (added by hakre, 5 years ago)
  • wp-includes/user.php

     
    663663 * 
    664664 * @since 3.0.0 
    665665 * @param array $ids User ID numbers list. 
    666  * @return array of arrays. The array is indexed by user_id, containing $metavalues object arrays. 
     666 * @return array of arrays. The array is indexed by user_id, containing an array of $metavalues database result objects for that user. 
    667667 */ 
    668 function get_user_metavalues($ids) { 
     668function get_user_metavalues( $ids ) { 
    669669        global $wpdb; 
    670670 
    671         $clean = array_map('intval', $ids); 
    672         if ( 0 == count($clean) ) 
     671        $clean = array_map( 'intval', $ids ); 
     672        if ( 0 == count( $clean ) ) 
    673673                return $objects; 
    674674 
    675         $list = implode(',', $clean); 
     675        $list = implode( ',', $clean ); 
    676676 
    677677        $show = $wpdb->hide_errors(); 
    678         $metavalues = $wpdb->get_results("SELECT user_id, meta_key, meta_value FROM $wpdb->usermeta WHERE user_id IN ($list)"); 
    679         $wpdb->show_errors($show); 
     678        $metavalues = $wpdb->get_results( "SELECT user_id, meta_key, meta_value FROM {$wpdb->usermeta} WHERE user_id IN ($list)" ); 
     679        $wpdb->show_errors( $show ); 
    680680 
    681681        $objects = array(); 
    682         foreach($clean as $id) { 
     682        foreach ( $clean as $id ) { 
    683683                $objects[$id] = array(); 
    684684        } 
    685         foreach($metavalues as $meta_object) { 
    686                 $objects[$meta_object->user_id][] = $meta_object; 
     685        foreach ( array_keys( $metavalues ) as $key ) { 
     686                $objects[$metavalues[$key]->user_id][] = &$metavalues[$key]; 
    687687        } 
    688688 
    689689        return $objects; 
     
    695695 * @since 3.0.0 
    696696 * @param object $user The User object. 
    697697 * @param array $metavalues An array of objects provided by get_user_metavalues() 
     698 * @return void 
    698699 */ 
    699 function _fill_single_user( &$user, &$metavalues ) { 
     700function _fill_single_user( &$user, $metavalues ) { 
    700701        global $wpdb; 
    701702 
    702         foreach ( $metavalues as $meta ) { 
    703                 $value = maybe_unserialize($meta->meta_value); 
    704                 // Keys used as object vars cannot have dashes. 
    705                 $key = str_replace('-', '', $meta->meta_key); 
    706                 $user->{$key} = $value; 
     703        foreach ( array_keys( $metavalues ) as $key ) { 
     704                // Keys used as Object Properties cannot have dashes. 
     705                $property          = str_replace( '-', '', $metavalues[$key]->meta_key ); 
     706                $user->{$property} = maybe_unserialize( $metavalues[$key]->meta_value ); 
    707707        } 
    708708 
    709709        $level = $wpdb->prefix . 'user_level'; 
     
    711711                $user->user_level = $user->{$level}; 
    712712 
    713713        // For backwards compat. 
    714         if ( isset($user->first_name) ) 
     714        if ( isset( $user->first_name ) ) 
    715715                $user->user_firstname = $user->first_name; 
    716         if ( isset($user->last_name) ) 
     716        if ( isset( $user->last_name ) ) 
    717717                $user->user_lastname = $user->last_name; 
    718         if ( isset($user->description) ) 
     718        if ( isset( $user->description ) ) 
    719719                $user->user_description = $user->description; 
    720720 
    721         update_user_caches($user); 
     721        update_user_caches( $user ); 
    722722} 
    723723 
    724724/** 
     
    726726 * 
    727727 * @since 3.0.0 
    728728 * @param array $users User objects 
    729  * @param array $metas User metavalues objects 
     729 * @return void 
    730730 */ 
    731 function _fill_many_users( &$users ) { 
     731function _fill_many_users( $users ) { 
    732732        $ids = array(); 
    733         foreach($users as $user_object) { 
    734                 $ids[] = $user_object->ID; 
     733        foreach ( array_keys( $users ) as $key ) { 
     734                $ids[] = $users[$key]->ID; 
    735735        } 
    736736 
    737     $metas = get_user_metavalues($ids); 
     737    $metas = get_user_metavalues( $ids ); 
    738738 
    739         foreach($users as $user_object) { 
    740                 if (isset($metas[$user_object->ID])) { 
    741                 _fill_single_user($user_object, $metas[$user_object->ID]); 
     739        foreach( array_keys( $users ) as $key ) { 
     740                $user_id = $users[$key]->ID; 
     741                if ( isset( $metas[$user_id] ) ) { 
     742                _fill_single_user( $users[$key], $metas[$user_id] ); 
    742743                } 
    743744        } 
    744745}