Make WordPress Core


Ignore:
Timestamp:
10/29/2005 11:23:17 PM (19 years ago)
Author:
matt
Message:

Some optimizations in queries and code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/pluggable-functions.php

    r2872 r2976  
    9393    global $cache_userdata, $wpdb;
    9494    $user_login = sanitize_user( $user_login );
     95
    9596    if ( empty( $user_login ) )
    9697        return false;
     98
    9799    if ( isset( $cache_userdata[$user_login] ) )
    98100        return $cache_userdata[$user_login];
    99    
    100     $user_id = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_login = '$user_login'");
    101 
    102     return get_userdata( $user_id );
     101
     102    if ( !$user = $wpdb->get_row("SELECT * FROM $wpdb->users WHERE user_login = '$user_login'") )
     103        return $cache_userdata[$user_login] = false;
     104
     105    $metavalues = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->usermeta WHERE user_id = '$user->ID'");
     106
     107    foreach ( $metavalues as $meta ) {
     108        @ $value = unserialize($meta->meta_value);
     109        if ($value === FALSE)
     110            $value = $meta->meta_value;
     111        $user->{$meta->meta_key} = $value;
     112
     113        // We need to set user_level from meta, not row
     114        if ( $wpdb->prefix . 'user_level' == $meta->meta_key )
     115            $user->user_level = $meta->meta_value;
     116    }
     117
     118    $cache_userdata[$user->ID] = $user;
     119    $cache_userdata[$cache_userdata[$user->ID]->user_login] =& $cache_userdata[$user->ID];
     120
     121    return $cache_userdata[$user->ID];
     122
    103123}
    104124endif;
Note: See TracChangeset for help on using the changeset viewer.