From 8e154dc493ffe66393c11a1c7efc2370b224b0ba Mon Sep 17 00:00:00 2001 From: ryan Date: Wed, 9 Nov 2005 18:15:55 +0000 Subject: [PATCH] Options fixes from donncha. fixes #1859 git-svn-id: http://svn.automattic.com/wordpress/trunk@3023 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/options.php | 1 + wp-includes/functions.php | 13 ++++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/wp-admin/options.php b/wp-admin/options.php index 1e4b092b6..ecfb2c2b6 100644 --- a/wp-admin/options.php +++ b/wp-admin/options.php @@ -58,6 +58,7 @@ case 'update': $new_val = 'closed'; if ($new_val !== $old_val) { $result = $wpdb->query("UPDATE $wpdb->options SET option_value = '$new_val' WHERE option_name = '$option->option_name'"); + wp_cache_set($option->option_name, $new_val, 'options'); $any_changed++; } } diff --git a/wp-includes/functions.php b/wp-includes/functions.php index cc487f535..f0c0ad5ab 100644 --- a/wp-includes/functions.php +++ b/wp-includes/functions.php @@ -267,8 +267,11 @@ function get_settings($setting) { $value = wp_cache_get($setting, 'options'); if ( false === $value ) { - $value = $wpdb->get_var("SELECT option_value FROM $wpdb->options WHERE option_name = '$setting'"); - wp_cache_add($setting, $value, 'options'); + $value = $wpdb->get_row("SELECT option_value FROM $wpdb->options WHERE option_name = '$setting'"); + if( is_object( $value ) ) { + $value = $value->option_value; + wp_cache_set($setting, $value, 'options'); + } } // If home is not set use siteurl. @@ -343,7 +346,7 @@ function update_option($option_name, $newvalue) { // If it's not there add it if ( !$wpdb->get_var("SELECT option_name FROM $wpdb->options WHERE option_name = '$option_name'") ) - add_option($option_name); + add_option($option_name, $newvalue); wp_cache_set($option_name, $newvalue, 'options'); @@ -365,14 +368,14 @@ function add_option($name, $value = '', $description = '', $autoload = 'yes') { global $wpdb; // Make sure the option doesn't already exist - if ( false !== get_option($name, 'options') ) + if ( false !== get_option($name) ) return; $original = $value; if ( is_array($value) || is_object($value) ) $value = serialize($value); - wp_cache_add($name, $value, 'options'); + wp_cache_set($name, $value, 'options'); $name = $wpdb->escape($name); $value = $wpdb->escape($value);