mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-07-01 15:50:09 +00:00
Some optimizations in queries and code.
git-svn-id: https://develop.svn.wordpress.org/trunk@2976 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -92,14 +92,34 @@ if ( !function_exists('get_userdatabylogin') ) :
|
||||
function get_userdatabylogin($user_login) {
|
||||
global $cache_userdata, $wpdb;
|
||||
$user_login = sanitize_user( $user_login );
|
||||
|
||||
if ( empty( $user_login ) )
|
||||
return false;
|
||||
|
||||
if ( isset( $cache_userdata[$user_login] ) )
|
||||
return $cache_userdata[$user_login];
|
||||
|
||||
$user_id = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_login = '$user_login'");
|
||||
|
||||
return get_userdata( $user_id );
|
||||
if ( !$user = $wpdb->get_row("SELECT * FROM $wpdb->users WHERE user_login = '$user_login'") )
|
||||
return $cache_userdata[$user_login] = false;
|
||||
|
||||
$metavalues = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->usermeta WHERE user_id = '$user->ID'");
|
||||
|
||||
foreach ( $metavalues as $meta ) {
|
||||
@ $value = unserialize($meta->meta_value);
|
||||
if ($value === FALSE)
|
||||
$value = $meta->meta_value;
|
||||
$user->{$meta->meta_key} = $value;
|
||||
|
||||
// We need to set user_level from meta, not row
|
||||
if ( $wpdb->prefix . 'user_level' == $meta->meta_key )
|
||||
$user->user_level = $meta->meta_value;
|
||||
}
|
||||
|
||||
$cache_userdata[$user->ID] = $user;
|
||||
$cache_userdata[$cache_userdata[$user->ID]->user_login] =& $cache_userdata[$user->ID];
|
||||
|
||||
return $cache_userdata[$user->ID];
|
||||
|
||||
}
|
||||
endif;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user