Ticket #21401: 21401-r1.diff
File 21401-r1.diff, 8.3 KB (added by , 12 years ago) |
---|
-
wp-includes/load.php
372 372 } 373 373 374 374 /** 375 * Access/Modify private global variable $_wp_using_ext_object_cache 376 * 377 * Toggle $_wp_using_ext_object_cache on and off without directly touching global 378 * 379 * @since 3.5.0 380 * 381 * @param bool $using Whether external object cache is being used 382 * @return bool The current 'using' setting 383 */ 384 function wp_using_ext_object_cache( $using = null ) { 385 global $_wp_using_ext_object_cache; 386 $current_using = $_wp_using_ext_object_cache; 387 if ( null !== $using ) 388 $_wp_using_ext_object_cache = $using; 389 return $current_using; 390 } 391 392 /** 375 393 * Starts the WordPress object cache. 376 394 * 377 395 * If an object-cache.php file exists in the wp-content directory, … … 381 399 * @since 3.0.0 382 400 */ 383 401 function wp_start_object_cache() { 384 global $ _wp_using_ext_object_cache, $blog_id;402 global $blog_id; 385 403 386 404 $first_init = false; 387 405 if ( ! function_exists( 'wp_cache_init' ) ) { 388 406 if ( file_exists( WP_CONTENT_DIR . '/object-cache.php' ) ) { 389 407 require_once ( WP_CONTENT_DIR . '/object-cache.php' ); 390 $_wp_using_ext_object_cache = true; 391 } else { 392 require_once ( ABSPATH . WPINC . '/cache.php' ); 393 $_wp_using_ext_object_cache = false; 408 if ( function_exists( 'wp_cache_init' ) ) 409 wp_using_ext_object_cache( true ); 394 410 } 411 395 412 $first_init = true; 396 } else if ( ! $_wp_using_ext_object_cache&& file_exists( WP_CONTENT_DIR . '/object-cache.php' ) ) {413 } else if ( !wp_using_ext_object_cache() && file_exists( WP_CONTENT_DIR . '/object-cache.php' ) ) { 397 414 // Sometimes advanced-cache.php can load object-cache.php before it is loaded here. 398 415 // This breaks the function_exists check above and can result in $_wp_using_ext_object_cache 399 416 // being set incorrectly. Double check if an external cache exists. 400 $_wp_using_ext_object_cache = true;417 wp_using_ext_object_cache( true ); 401 418 } 402 419 420 if ( ! wp_using_ext_object_cache() ) 421 require_once ( ABSPATH . WPINC . '/cache.php' ); 422 403 423 // If cache supports reset, reset instead of init if already initialized. 404 424 // Reset signals to the cache that global IDs have changed and it may need to update keys 405 425 // and cleanup caches. 406 426 if ( ! $first_init && function_exists( 'wp_cache_switch_to_blog' ) ) 407 427 wp_cache_switch_to_blog( $blog_id ); 408 else 428 elseif ( function_exists( 'wp_cache_init' ) ) 409 429 wp_cache_init(); 410 430 411 431 if ( function_exists( 'wp_cache_add_global_groups' ) ) { -
wp-includes/query.php
1917 1917 * @return array List of posts. 1918 1918 */ 1919 1919 function get_posts() { 1920 global $wpdb, $user_ID , $_wp_using_ext_object_cache;1920 global $wpdb, $user_ID; 1921 1921 1922 1922 $this->parse_query(); 1923 1923 … … 1967 1967 $q['suppress_filters'] = false; 1968 1968 1969 1969 if ( !isset($q['cache_results']) ) { 1970 if ( $_wp_using_ext_object_cache)1970 if ( wp_using_ext_object_cache() ) 1971 1971 $q['cache_results'] = false; 1972 1972 else 1973 1973 $q['cache_results'] = true; -
wp-includes/option.php
165 165 * @param int $site_id Optional site ID for which to query the options. Defaults to the current site. 166 166 */ 167 167 function wp_load_core_site_options( $site_id = null ) { 168 global $wpdb , $_wp_using_ext_object_cache;168 global $wpdb; 169 169 170 if ( !is_multisite() || $_wp_using_ext_object_cache|| defined( 'WP_INSTALLING' ) )170 if ( !is_multisite() || wp_using_ext_object_cache() || defined( 'WP_INSTALLING' ) ) 171 171 return; 172 172 173 173 if ( empty($site_id) ) … … 404 404 * @return bool true if successful, false otherwise 405 405 */ 406 406 function delete_transient( $transient ) { 407 global $_wp_using_ext_object_cache;408 409 407 do_action( 'delete_transient_' . $transient, $transient ); 410 408 411 if ( $_wp_using_ext_object_cache) {409 if ( wp_using_ext_object_cache() ) { 412 410 $result = wp_cache_delete( $transient, 'transient' ); 413 411 } else { 414 412 $option_timeout = '_transient_timeout_' . $transient; … … 443 441 * @return mixed Value of transient 444 442 */ 445 443 function get_transient( $transient ) { 446 global $_wp_using_ext_object_cache;447 448 444 $pre = apply_filters( 'pre_transient_' . $transient, false ); 449 445 if ( false !== $pre ) 450 446 return $pre; 451 447 452 if ( $_wp_using_ext_object_cache) {448 if ( wp_using_ext_object_cache() ) { 453 449 $value = wp_cache_get( $transient, 'transient' ); 454 450 } else { 455 451 $transient_option = '_transient_' . $transient; … … 492 488 * @return bool False if value was not set and true if value was set. 493 489 */ 494 490 function set_transient( $transient, $value, $expiration = 0 ) { 495 global $_wp_using_ext_object_cache;496 497 491 $value = apply_filters( 'pre_set_transient_' . $transient, $value ); 498 492 499 if ( $_wp_using_ext_object_cache) {493 if ( wp_using_ext_object_cache() ) { 500 494 $result = wp_cache_set( $transient, $value, 'transient', $expiration ); 501 495 } else { 502 496 $transient_timeout = '_transient_timeout_' . $transient; … … 945 939 * @return bool True if successful, false otherwise 946 940 */ 947 941 function delete_site_transient( $transient ) { 948 global $_wp_using_ext_object_cache;949 950 942 do_action( 'delete_site_transient_' . $transient, $transient ); 951 if ( $_wp_using_ext_object_cache) {943 if ( wp_using_ext_object_cache() ) { 952 944 $result = wp_cache_delete( $transient, 'site-transient' ); 953 945 } else { 954 946 $option_timeout = '_site_transient_timeout_' . $transient; … … 983 975 * @return mixed Value of transient 984 976 */ 985 977 function get_site_transient( $transient ) { 986 global $_wp_using_ext_object_cache;987 988 978 $pre = apply_filters( 'pre_site_transient_' . $transient, false ); 989 979 if ( false !== $pre ) 990 980 return $pre; 991 981 992 if ( $_wp_using_ext_object_cache) {982 if ( wp_using_ext_object_cache() ) { 993 983 $value = wp_cache_get( $transient, 'site-transient' ); 994 984 } else { 995 985 // Core transients that do not have a timeout. Listed here so querying timeouts can be avoided. … … 1032 1022 * @return bool False if value was not set and true if value was set. 1033 1023 */ 1034 1024 function set_site_transient( $transient, $value, $expiration = 0 ) { 1035 global $_wp_using_ext_object_cache;1036 1037 1025 $value = apply_filters( 'pre_set_site_transient_' . $transient, $value ); 1038 1026 1039 if ( $_wp_using_ext_object_cache) {1027 if ( wp_using_ext_object_cache() ) { 1040 1028 $result = wp_cache_set( $transient, $value, 'site-transient', $expiration ); 1041 1029 } else { 1042 1030 $transient_timeout = '_site_transient_timeout_' . $transient; -
wp-includes/nav-menu.php
469 469 * @return mixed $items array of menu items, else false. 470 470 */ 471 471 function wp_get_nav_menu_items( $menu, $args = array() ) { 472 global $_wp_using_ext_object_cache;473 474 472 $menu = wp_get_nav_menu_object( $menu ); 475 473 476 474 if ( ! $menu ) … … 497 495 return false; 498 496 499 497 // Get all posts and terms at once to prime the caches 500 if ( empty( $fetched[$menu->term_id] ) || $_wp_using_ext_object_cache) {498 if ( empty( $fetched[$menu->term_id] ) || wp_using_ext_object_cache() ) { 501 499 $fetched[$menu->term_id] = true; 502 500 $posts = array(); 503 501 $terms = array(); -
wp-settings.php
54 54 wp_debug_mode(); 55 55 56 56 // For an advanced caching plugin to use. Uses a static drop-in because you would only want one. 57 if ( WP_CACHE )57 if ( WP_CACHE && file_exists( WP_CONTENT_DIR . '/advanced-cache.php' ) ) 58 58 WP_DEBUG ? include( WP_CONTENT_DIR . '/advanced-cache.php' ) : @include( WP_CONTENT_DIR . '/advanced-cache.php' ); 59 59 60 60 // Define WP_LANG_DIR if not set. -
wp-cron.php
28 28 29 29 // Uncached doing_cron transient fetch 30 30 function _get_cron_lock() { 31 global $ _wp_using_ext_object_cache, $wpdb;31 global $wpdb; 32 32 33 33 $value = 0; 34 if ( $_wp_using_ext_object_cache) {34 if ( wp_using_ext_object_cache() ) { 35 35 // Skip local cache and force refetch of doing_cron transient in case 36 36 // another processs updated the cache 37 37 $value = wp_cache_get( 'doing_cron', 'transient', true );