Make WordPress Core

Ticket #2134: pluggable-functions.php.diff

File pluggable-functions.php.diff, 1.8 KB (added by johnjosephbachir, 19 years ago)
  • wp-includes/pluggable-functions.php

     
    2828endif;
    2929
    3030if ( !function_exists('get_userdata') ) :
    31 function get_userdata( $user_id ) {
     31function get_userdata( $user_id, $user_row=false ) {
    3232        global $wpdb;
     33        if ( !$user_row ) {     
    3334        $user_id = (int) $user_id;
    3435        if ( $user_id == 0 )
    3536                return false;
     
    4142
    4243        if ( !$user = $wpdb->get_row("SELECT * FROM $wpdb->users WHERE ID = '$user_id' LIMIT 1") )
    4344                return false;
     45        } else
     46                $user = $user_row;
    4447
    4548        $wpdb->hide_errors();
    4649        $metavalues = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->usermeta WHERE user_id = '$user_id'");
     
    8386        $userdata = wp_cache_get($user_login, 'userlogins');
    8487        if ( $userdata )
    8588                return $userdata;
    86 
    87         if ( !$user = $wpdb->get_row("SELECT * FROM $wpdb->users WHERE user_login = '$user_login'") )
     89        elseif ( $user = $wpdb->get_var("SELECT * FROM $wpdb->users WHERE user_login = '$user_login'") )
     90                return get_userdata($user->$ID, $user);
     91        else
    8892                return false;
    89 
    90         $wpdb->hide_errors();
    91         $metavalues = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->usermeta WHERE user_id = '$user->ID'");
    92         $wpdb->show_errors();
    93 
    94         if ($metavalues) {
    95                 foreach ( $metavalues as $meta ) {
    96                         @ $value = unserialize($meta->meta_value);
    97                         if ($value === FALSE)
    98                                 $value = $meta->meta_value;
    99                         $user->{$meta->meta_key} = $value;
    100 
    101                         // We need to set user_level from meta, not row
    102                         if ( $wpdb->prefix . 'user_level' == $meta->meta_key )
    103                                 $user->user_level = $meta->meta_value;
    104                 }
    105         }
    106 
    107         wp_cache_add($user->ID, $user, 'users');
    108         wp_cache_add($user->user_login, $user, 'userlogins');
    109 
    110         return $user;
    111 
    11293}
    11394endif;
    11495