| 211 | | $value = wp_cache_get($setting, 'options'); |
|---|
| 212 | | |
|---|
| 213 | | if ( false === $value ) { |
|---|
| 214 | | if ( defined('WP_INSTALLING') ) |
|---|
| 215 | | $wpdb->hide_errors(); |
|---|
| 216 | | $row = $wpdb->get_row("SELECT option_value FROM $wpdb->options WHERE option_name = '$setting' LIMIT 1"); |
|---|
| 217 | | if ( defined('WP_INSTALLING') ) |
|---|
| 218 | | $wpdb->show_errors(); |
|---|
| 219 | | |
|---|
| 220 | | if( is_object( $row) ) { // Has to be get_row instead of get_var because of funkiness with 0, false, null values |
|---|
| 221 | | $value = $row->option_value; |
|---|
| 222 | | wp_cache_set($setting, $value, 'options'); |
|---|
| 223 | | } else { |
|---|
| 224 | | return false; |
|---|
| | 211 | // prevent non-existent options from triggering multiple queries |
|---|
| | 212 | $notoptions = wp_cache_get('notoptions', 'options'); |
|---|
| | 213 | if ( isset($notoptions[$setting]) ) |
|---|
| | 214 | return false; |
|---|
| | 215 | |
|---|
| | 216 | $alloptions = wp_load_alloptions(); |
|---|
| | 217 | |
|---|
| | 218 | if ( isset($alloptions[$setting]) ) { |
|---|
| | 219 | $value = $alloptions[$setting]; |
|---|
| | 220 | } else { |
|---|
| | 221 | $value = wp_cache_get($setting, 'options'); |
|---|
| | 222 | |
|---|
| | 223 | if ( false === $value ) { |
|---|
| | 224 | if ( defined('WP_INSTALLING') ) |
|---|
| | 225 | $wpdb->hide_errors(); |
|---|
| | 226 | $row = $wpdb->get_row("SELECT option_value FROM $wpdb->options WHERE option_name = '$setting' LIMIT 1"); |
|---|
| | 227 | if ( defined('WP_INSTALLING') ) |
|---|
| | 228 | $wpdb->show_errors(); |
|---|
| | 229 | |
|---|
| | 230 | if( is_object( $row) ) { // Has to be get_row instead of get_var because of funkiness with 0, false, null values |
|---|
| | 231 | $value = $row->option_value; |
|---|
| | 232 | wp_cache_set($setting, $value, 'options'); |
|---|
| | 233 | } else { // option does not exist, so we must cache its non-existence |
|---|
| | 234 | $notoptions[$setting] = true; |
|---|
| | 235 | wp_cache_set('notoptions', $notoptions, 'options'); |
|---|
| | 236 | return false; |
|---|
| | 237 | } |
|---|
| | 284 | function wp_load_alloptions() { |
|---|
| | 285 | global $wpdb; |
|---|
| | 286 | |
|---|
| | 287 | $alloptions = wp_cache_get('alloptions', 'options'); |
|---|
| | 288 | |
|---|
| | 289 | if ( !$alloptions ) { |
|---|
| | 290 | $wpdb->hide_errors(); |
|---|
| | 291 | if ( !$alloptions_db = $wpdb->get_results("SELECT option_name, option_value FROM $wpdb->options WHERE autoload = 'yes'") ) |
|---|
| | 292 | $alloptions_db = $wpdb->get_results("SELECT option_name, option_value FROM $wpdb->options"); |
|---|
| | 293 | $wpdb->show_errors(); |
|---|
| | 294 | $alloptions = array(); |
|---|
| | 295 | foreach ( (array) $alloptions_db as $o ) |
|---|
| | 296 | $alloptions[$o->option_name] = $o->option_value; |
|---|
| | 297 | wp_cache_set('alloptions', $alloptions, 'options'); |
|---|
| | 298 | } |
|---|
| | 299 | return $alloptions; |
|---|
| | 300 | } |
|---|
| | 301 | |
|---|
| 285 | | wp_cache_set($option_name, $newvalue, 'options'); |
|---|
| | 330 | $alloptions = wp_load_alloptions(); |
|---|
| | 331 | if ( isset($alloptions[$option_name]) ) { |
|---|
| | 332 | $alloptions[$options_name] = $newvalue; |
|---|
| | 333 | wp_cache_set('alloptions', $alloptions, 'options'); |
|---|
| | 334 | } else { |
|---|
| | 335 | wp_cache_set($option_name, $newvalue, 'options'); |
|---|
| | 336 | } |
|---|
| 301 | | // Make sure the option doesn't already exist |
|---|
| 302 | | if ( false !== get_option($name) ) |
|---|
| 303 | | return; |
|---|
| | 352 | wp_protect_special_option($name); |
|---|
| | 353 | |
|---|
| | 354 | // Make sure the option doesn't already exist we can check the cache before we ask for a db query |
|---|
| | 355 | $notoptions = wp_cache_get('notoptions', 'options'); |
|---|
| | 356 | if ( isset($notoptions[$name]) ) { |
|---|
| | 357 | unset($notoptions[$name]); |
|---|
| | 358 | wp_cache_set('notoptions', $notoptions, 'options'); |
|---|
| | 359 | } elseif ( false !== get_option($name) ) { |
|---|
| | 360 | return; |
|---|
| | 361 | } |
|---|
| 307 | | wp_cache_set($name, $value, 'options'); |
|---|
| | 365 | if ( 'yes' == $autoload ) { |
|---|
| | 366 | $alloptions = wp_load_alloptions(); |
|---|
| | 367 | $alloptions[$name] = $value; |
|---|
| | 368 | wp_cache_set('alloptions', $alloptions, 'options'); |
|---|
| | 369 | } else { |
|---|
| | 370 | wp_cache_set($name, $value, 'options'); |
|---|
| | 371 | } |
|---|
| 323 | | wp_cache_delete($name, 'options'); |
|---|
| | 390 | if ( 'yes' == $option->autoload ) { |
|---|
| | 391 | $alloptions = wp_load_alloptions(); |
|---|
| | 392 | if ( isset($alloptions[$name]) ) { |
|---|
| | 393 | unset($alloptions[$name]); |
|---|
| | 394 | wp_cache_set('alloptions', $alloptions, 'options'); |
|---|
| | 395 | } |
|---|
| | 396 | } else { |
|---|
| | 397 | wp_cache_delete($name, 'options'); |
|---|
| | 398 | } |
|---|