| 205 | | global $blog_id; |
|---|
| 206 | | if( $wpdb->blogid != $blog_id && function_exists('error_log') ) { |
|---|
| 207 | | $msg = "{$_SERVER[ 'HTTP_HOST' ]}{$_SERVER[ 'REQUEST_URI' ]} blog_id changed without calling switch_to_blog(). Current value: $blog_id"; |
|---|
| 208 | | if( defined( 'ERRORLOGFILE' ) ) { |
|---|
| 209 | | error_log( $msg, 3, CONSTANT( 'ERRORLOGFILE' ) ); |
|---|
| 210 | | } else { |
|---|
| 211 | | error_log( $msg ); |
|---|
| 212 | | } |
|---|
| 213 | | } |
|---|
| 214 | | if ( $switched != false || defined('WP_INSTALLING') != false ) { |
|---|
| 215 | | //wp_cache_delete($setting, 'options'); |
|---|
| 216 | | //wp_cache_delete('notoptions', 'options'); |
|---|
| 217 | | //wp_cache_delete('alloptions', 'options'); |
|---|
| 218 | | } |
|---|
| 219 | | |
|---|
| 220 | | // prevent non-existent options from triggering multiple queries |
|---|
| 221 | | $notoptions = wp_cache_get( 'notoptions', 'options' ); |
|---|
| 222 | | if ( isset( $notoptions[$setting] ) ) |
|---|
| 223 | | return false; |
|---|
| 224 | | |
|---|
| 225 | | $alloptions = wp_load_alloptions(); |
|---|
| 226 | | |
|---|
| 227 | | if ( isset( $alloptions[$setting] ) ) { |
|---|
| 228 | | $value = $alloptions[$setting]; |
|---|
| 229 | | } else { |
|---|
| 230 | | $value = wp_cache_get( $setting, 'options' ); |
|---|
| 231 | | |
|---|
| 232 | | if ( false === $value ) { |
|---|
| 233 | | if ( defined( 'WP_INSTALLING' ) ) |
|---|
| 234 | | $supress = $wpdb->suppress_errors(); |
|---|
| 235 | | // expected_slashed ($setting) |
|---|
| 236 | | $row = $wpdb->get_row( "SELECT option_value FROM $wpdb->options WHERE option_name = '$setting' LIMIT 1" ); |
|---|
| 237 | | if ( defined( 'WP_INSTALLING' ) ) |
|---|
| 238 | | $wpdb->suppress_errors($suppress); |
|---|
| 239 | | |
|---|
| 240 | | if ( is_object( $row) ) { // Has to be get_row instead of get_var because of funkiness with 0, false, null values |
|---|
| 241 | | $value = $row->option_value; |
|---|
| 242 | | wp_cache_add( $setting, $value, 'options' ); |
|---|
| 243 | | } else { // option does not exist, so we must cache its non-existence |
|---|
| 244 | | $notoptions[$setting] = true; |
|---|
| 245 | | wp_cache_set( 'notoptions', $notoptions, 'options' ); |
|---|
| 246 | | return false; |
|---|
| 247 | | } |
|---|
| 248 | | } |
|---|
| 249 | | } |
|---|
| | 206 | $value = _get_option_cache( $setting ); |
|---|
| | 207 | if ( false === $value ) |
|---|
| | 208 | return false; |
|---|
| 293 | | |
|---|
| 294 | | $alloptions = wp_cache_get( 'alloptions', 'options' ); |
|---|
| 295 | | |
|---|
| 296 | | if ( !$alloptions ) { |
|---|
| 297 | | $suppress = $wpdb->suppress_errors(); |
|---|
| 298 | | if ( !$alloptions_db = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options WHERE autoload = 'yes'" ) ) |
|---|
| 299 | | $alloptions_db = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options" ); |
|---|
| 300 | | $wpdb->suppress_errors($suppress); |
|---|
| 301 | | $alloptions = array(); |
|---|
| 302 | | foreach ( (array) $alloptions_db as $o ) |
|---|
| 303 | | $alloptions[$o->option_name] = $o->option_value; |
|---|
| 304 | | wp_cache_add( 'alloptions', $alloptions, 'options' ); |
|---|
| 305 | | } |
|---|
| 306 | | return $alloptions; |
|---|
| 307 | | } |
|---|
| 308 | | |
|---|
| | 255 | global $_wp_alloptions; |
|---|
| | 256 | global $blog_id; |
|---|
| | 257 | |
|---|
| | 258 | if ( !empty($_wp_alloptions[$blog_id]) ) |
|---|
| | 259 | return $_wp_alloptions[$blog_id]; |
|---|
| | 260 | |
|---|
| | 261 | $alloptions = wp_cache_get('alloptions', 'options'); |
|---|
| | 262 | |
|---|
| | 263 | if ( false !== $alloptions ) { |
|---|
| | 264 | $_wp_alloptions[$blog_id] = $alloptions; |
|---|
| | 265 | return $alloptions; |
|---|
| | 266 | } |
|---|
| | 267 | |
|---|
| | 268 | $_wp_alloptions[$blog_id] = array(); |
|---|
| | 269 | |
|---|
| | 270 | $suppress = $wpdb->suppress_errors(); |
|---|
| | 271 | if ( !$alloptions_db = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options WHERE autoload = 'yes'" ) ) |
|---|
| | 272 | $alloptions_db = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options" ); |
|---|
| | 273 | $wpdb->suppress_errors($suppress); |
|---|
| | 274 | foreach ( (array) $alloptions_db as $o ) |
|---|
| | 275 | $_wp_alloptions[$blog_id][$o->option_name] = $o->option_value; |
|---|
| | 276 | |
|---|
| | 277 | wp_cache_set('alloptions', $_wp_alloptions[$blog_id], 'options'); |
|---|
| | 278 | |
|---|
| | 279 | return $_wp_alloptions[$blog_id]; |
|---|
| | 280 | } |
|---|
| | 281 | |
|---|
| | 282 | function _get_option_cache( $setting ) { |
|---|
| | 283 | global $_wp_alloptions; |
|---|
| | 284 | global $blog_id; |
|---|
| | 285 | |
|---|
| | 286 | wp_load_alloptions(); |
|---|
| | 287 | |
|---|
| | 288 | if ( isset($_wp_alloptions[$blog_id][$setting]) ) |
|---|
| | 289 | return $_wp_alloptions[$blog_id][$setting]; |
|---|
| | 290 | |
|---|
| | 291 | return false; |
|---|
| | 292 | } |
|---|
| | 293 | |
|---|
| | 294 | function _set_option_cache( $setting, $value ) { |
|---|
| | 295 | global $_wp_alloptions; |
|---|
| | 296 | global $blog_id; |
|---|
| | 297 | |
|---|
| | 298 | wp_load_alloptions(); |
|---|
| | 299 | |
|---|
| | 300 | $_wp_alloptions[$blog_id][$setting] = $value; |
|---|
| | 301 | |
|---|
| | 302 | wp_cache_delete('alloptions', 'options'); |
|---|
| | 303 | } |
|---|
| | 304 | |
|---|
| | 305 | function _delete_option_cache( $setting ) { |
|---|
| | 306 | global $_wp_alloptions; |
|---|
| | 307 | global $blog_id; |
|---|
| | 308 | |
|---|
| | 309 | wp_load_alloptions(); |
|---|
| | 310 | |
|---|
| | 311 | if ( isset($_wp_alloptions[$blog_id][$setting]) ) |
|---|
| | 312 | unset($_wp_alloptions[$blog_id][$setting]); |
|---|
| | 313 | |
|---|
| | 314 | wp_cache_delete('alloptions', 'options'); |
|---|
| | 315 | } |
|---|
| 373 | | if ( 'yes' == $autoload ) { |
|---|
| 374 | | $alloptions = wp_load_alloptions(); |
|---|
| 375 | | $alloptions[$name] = $value; |
|---|
| 376 | | wp_cache_set( 'alloptions', $alloptions, 'options' ); |
|---|
| 377 | | } else { |
|---|
| 378 | | wp_cache_set( $name, $value, 'options' ); |
|---|
| 379 | | } |
|---|
| 380 | | |
|---|
| 381 | | // This option exists now |
|---|
| 382 | | $notoptions = wp_cache_get( 'notoptions', 'options' ); // yes, again... we need it to be fresh |
|---|
| 383 | | if ( is_array( $notoptions ) && isset( $notoptions[$name] ) ) { |
|---|
| 384 | | unset( $notoptions[$name] ); |
|---|
| 385 | | wp_cache_set( 'notoptions', $notoptions, 'options' ); |
|---|
| 386 | | } |
|---|
| | 365 | _set_option_cache( $name, $value ); |
|---|