wp_start_object_cache() – Start the WordPress object cache.

You appear to be a bot. Output may be restricted

Description

Start the WordPress object cache.

If an object-cache.php file exists in the wp-content directory, it uses that drop-in as an external object cache.

Usage

wp_start_object_cache();

Parameters

Returns

void

Source

File name: wordpress/wp-includes/load.php
Lines:

1 to 94 of 94
function wp_start_object_cache() {
  global $wp_filter;
  static $first_init = true;

  // Only perform the following checks once.

  
/**
 * Filters whether to enable loading of the object-cache.php drop-in.
 *
 * This filter runs before it can be used by plugins. It is designed for non-web
 * runtimes. If false is returned, object-cache.php will never be loaded.
 *
 * @since 5.8.0
 *
 * @param bool $enable_object_cache Whether to enable loading object-cache.php (if present).
 *                                  Default true.
 */
  if ( $first_init && apply_filters( 'enable_loading_object_cache_dropin', true ) ) {
    if ( ! function_exists( 'wp_cache_init' ) ) {
      /*
			 * This is the normal situation. First-run of this function. No
			 * caching backend has been loaded.
			 *
			 * We try to load a custom caching backend, and then, if it
			 * results in a wp_cache_init() function existing, we note
			 * that an external object cache is being used.
			 */
      if ( file_exists( WP_CONTENT_DIR . '/object-cache.php' ) ) {
        require_once WP_CONTENT_DIR . '/object-cache.php';
        if ( function_exists( 'wp_cache_init' ) ) {
          wp_using_ext_object_cache( true );
        }

        // Re-initialize any hooks added manually by object-cache.php.
        if ( $wp_filter ) {
          $wp_filter = WP_Hook::WP_Hook::build_preinitialized_hooks( $wp_filter );
        }
      }
    } elseif ( ! wp_using_ext_object_cache() && file_exists( WP_CONTENT_DIR . '/object-cache.php' ) ) {
      /*
			 * Sometimes advanced-cache.php can load object-cache.php before
			 * this function is run. This breaks the function_exists() check
			 * above and can result in wp_using_ext_object_cache() returning
			 * false when actually an external cache is in use.
			 */
      wp_using_ext_object_cache( true );
    }
  }

  if ( ! wp_using_ext_object_cache() ) {
    require_once ABSPATH . WPINC . '/cache.php';
  }

  require_once ABSPATH . WPINC . '/cache-compat.php';

  /*
	 * If cache supports reset, reset instead of init if already
	 * initialized. Reset signals to the cache that global IDs
	 * have changed and it may need to update keys and cleanup caches.
	 */
  if ( ! $first_init && function_exists( 'wp_cache_switch_to_blog' ) ) {
    wp_cache_switch_to_blog( get_current_blog_id() );
  } elseif ( function_exists( 'wp_cache_init' ) ) {
    wp_cache_init();
  }

  if ( function_exists( 'wp_cache_add_global_groups' ) ) {
    wp_cache_add_global_groups(
      array(
        'blog-details',
        'blog-id-cache',
        'blog-lookup',
        'blog_meta',
        'global-posts',
        'networks',
        'sites',
        'site-details',
        'site-options',
        'site-transient',
        'rss',
        'users',
        'useremail',
        'userlogins',
        'usermeta',
        'user_meta',
        'userslugs',
      )
    );

    wp_cache_add_non_persistent_groups( array( 'counts', 'plugins' ) );
  }

  $first_init = false;
}
 

 View on GitHub View on Trac