WordPress.org

Make WordPress Core

Changeset 14515


Ignore:
Timestamp:
05/08/10 18:05:16 (4 years ago)
Author:
wpmuguru
Message:

consistency & simplicity in get_option(), see #12140

File:
1 edited

Legend:

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

    r14510 r14515  
    311311        return false; 
    312312 
    313     // prevent non-existent options from triggering multiple queries 
    314     if ( defined( 'WP_INSTALLING' ) && is_multisite() ) { 
    315         $notoptions = array(); 
    316     } else { 
     313    if ( ! defined( 'WP_INSTALLING' ) ) { 
     314        // prevent non-existent options from triggering multiple queries 
    317315        $notoptions = wp_cache_get( 'notoptions', 'options' ); 
    318316        if ( isset( $notoptions[$option] ) ) 
    319317            return $default; 
    320     } 
    321  
    322     if ( ! defined( 'WP_INSTALLING' ) ) { 
     318 
    323319        $alloptions = wp_load_alloptions(); 
    324     } 
    325  
    326     if ( isset( $alloptions[$option] ) ) { 
    327         $value = $alloptions[$option]; 
    328     } else { 
    329         $value = wp_cache_get( $option, 'options' ); 
    330  
    331         if ( false === $value ) { 
    332             if ( defined( 'WP_INSTALLING' ) ) 
    333                 $suppress = $wpdb->suppress_errors(); 
    334             $row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", $option ) ); 
    335             if ( defined( 'WP_INSTALLING' ) ) 
    336                 $wpdb->suppress_errors( $suppress ); 
    337  
    338             // Has to be get_row instead of get_var because of funkiness with 0, false, null values 
    339             if ( is_object( $row ) ) { 
    340                 $value = $row->option_value; 
    341                 if ( ! defined( 'WP_INSTALLING' ) ) 
     320 
     321        if ( isset( $alloptions[$option] ) ) { 
     322            $value = $alloptions[$option]; 
     323        } else { 
     324            $value = wp_cache_get( $option, 'options' ); 
     325 
     326            if ( false === $value ) { 
     327                $row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", $option ) ); 
     328 
     329                // Has to be get_row instead of get_var because of funkiness with 0, false, null values 
     330                if ( is_object( $row ) ) { 
     331                    $value = $row->option_value; 
    342332                    wp_cache_add( $option, $value, 'options' ); 
    343             } else { // option does not exist, so we must cache its non-existence 
    344                 $notoptions[$option] = true; 
    345                 wp_cache_set( 'notoptions', $notoptions, 'options' ); 
    346                 return $default; 
     333                } else { // option does not exist, so we must cache its non-existence 
     334                    $notoptions[$option] = true; 
     335                    wp_cache_set( 'notoptions', $notoptions, 'options' ); 
     336                    return $default; 
     337                } 
    347338            } 
    348339        } 
     340    } else { 
     341        $suppress = $wpdb->suppress_errors(); 
     342        $row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", $option ) ); 
     343        $wpdb->suppress_errors( $suppress ); 
     344        if ( is_object( $row ) ) 
     345            $value = $row->option_value; 
     346        else 
     347            return $default; 
    349348    } 
    350349 
Note: See TracChangeset for help on using the changeset viewer.