Make WordPress Core


Ignore:
Timestamp:
09/29/2004 08:33:05 PM (22 years ago)
Author:
michelvaldrighi
Message:

rather ugly fix to prevent the querying of unknown/removed options, feel free to replace it with a better alternative someday

File:
1 edited

Legend:

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

    r1721 r1723  
    300300
    301301function get_settings($setting) {
    302         global $wpdb, $cache_settings;
     302  global $wpdb, $cache_settings, $cache_nonexistantoptions;
    303303        if ( strstr($_SERVER['REQUEST_URI'], 'wp-admin/install.php') || strstr($_SERVER['REQUEST_URI'], 'wp-admin/upgrade.php') )
    304304                return false;
     
    306306        if ( empty($cache_settings) )
    307307                $cache_settings = get_alloptions();
     308
     309        if ( empty($cache_nonexistantoptions) )
     310                $cache_nonexistantoptions = array();
    308311
    309312        if ('home' == $setting && '' == $cache_settings->home)
     
    313316                return $cache_settings->$setting;
    314317        else :
     318                // for these cases when we're asking for an unknown option
     319                if ( isset($cache_nonexistantoptions[$setting]) )
     320                        return false;
     321
    315322                $option = $wpdb->get_var("SELECT option_value FROM $wpdb->options WHERE option_name = '$setting'");
     323
     324                if (!$option) :
     325                        $cache_nonexistantoptions[] = $setting;
     326                        return false;
     327                endif;
     328         
    316329                if (@ $kellogs =  unserialize($option) ) return $kellogs;
    317330                else return $option;
Note: See TracChangeset for help on using the changeset viewer.