WordPress.org

Make WordPress Core

Changeset 7764


Ignore:
Timestamp:
04/21/08 19:47:15 (7 years ago)
Author:
ryan
Message:

Consult the cached user object in get_usermeta to avoid queries. For 2.5

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.5/wp-includes/user.php

    r7691 r7764  
    149149    if ( !empty($meta_key) ) { 
    150150        $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key); 
    151         $metas = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->usermeta WHERE user_id = '$user_id' AND meta_key = '$meta_key'"); 
     151        $user = wp_cache_get($user_id, 'users'); 
     152        // Check the cached user object 
     153        if ( false !== $user && isset($user->$meta_key) ) 
     154            $metas = array($user->$meta_key); 
     155        else 
     156            $metas = $wpdb->get_col( $wpdb->prepare("SELECT meta_value FROM $wpdb->usermeta WHERE user_id = %d AND meta_key = %s", $user_id, $meta_key) ); 
    152157    } else { 
    153         $metas = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->usermeta WHERE user_id = '$user_id'"); 
    154     } 
    155  
     158        $metas = $wpdb->get_col( $wpdb->prepare("SELECT meta_value FROM $wpdb->usermeta WHERE user_id = %d", $user_id) ); 
     159    } 
     160    error_log("$meta_key: " . var_export($metas, true), 0); 
    156161    if ( empty($metas) ) { 
    157162        if ( empty($meta_key) ) 
     
    161166    } 
    162167 
    163     foreach ($metas as $meta) 
    164         $values[] = maybe_unserialize($meta->meta_value); 
    165  
    166     if ( count($values) == 1 ) 
    167         return $values[0]; 
    168     else 
    169         return $values; 
     168    $metas = array_map('maybe_unserialize', $metas); 
     169 
     170    if ( count($metas) == 1 ) 
     171        return $metas[0]; 
     172    else 
     173        return $metas; 
    170174} 
    171175 
Note: See TracChangeset for help on using the changeset viewer.