Make WordPress Core


Ignore:
Timestamp:
10/03/2017 06:40:32 PM (4 years ago)
Author:
flixos90
Message:

Multisite: Establish clean_blog_cache() as a replacement for refresh_blog_details().

Going forward, clean_blog_cache() is recommended to be used instead of refresh_blog_details(). It has been adjusted to match the functionality of the latter, with the exception that it always requires a site ID or object to be passed. The refresh_blog_details action has been deprecated in favor of the clean_site_cache action. The function itself is not formally deprecated at this point, but will likely be in the near future.

Props spacedmonkey.
Fixes #40201.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/ms-blogs.php

    r41698 r41716  
    266266    }
    267267
    268     $details = get_site( $blog_id );
    269     if ( ! $details ) {
    270         // Make sure clean_blog_cache() gets the blog ID
    271         // when the blog has been previously cached as
    272         // non-existent.
    273         $details = (object) array(
    274             'blog_id' => $blog_id,
    275             'domain' => null,
    276             'path' => null
    277         );
    278     }
    279 
    280     clean_blog_cache( $details );
    281 
    282     /**
    283      * Fires after the blog details cache is cleared.
    284      *
    285      * @since 3.4.0
    286      *
    287      * @param int $blog_id Blog ID.
    288      */
    289     do_action( 'refresh_blog_details', $blog_id );
     268    clean_blog_cache( $blog_id );
    290269}
    291270
     
    444423 * @global bool $_wp_suspend_cache_invalidation
    445424 *
    446  * @param WP_Site $blog The site object to be cleared from cache.
     425 * @param WP_Site|int $blog The site object or ID to be cleared from cache.
    447426 */
    448427function clean_blog_cache( $blog ) {
     
    451430    if ( ! empty( $_wp_suspend_cache_invalidation ) ) {
    452431        return;
     432    }
     433
     434    if ( empty( $blog ) ) {
     435        return;
     436    }
     437
     438    $blog_id = $blog;
     439    $blog = get_site( $blog_id );
     440    if ( ! $blog ) {
     441        if ( ! is_numeric( $blog_id ) ) {
     442            return;
     443        }
     444
     445        // Make sure a WP_Site object exists even when the site has been deleted.
     446        $blog = new WP_Site( (object) array(
     447            'blog_id' => $blog_id,
     448            'domain'  => null,
     449            'path'    => null,
     450        ) );
    453451    }
    454452
     
    477475
    478476    wp_cache_set( 'last_changed', microtime(), 'sites' );
     477
     478    /**
     479     * Fires after the blog details cache is cleared.
     480     *
     481     * @since 3.4.0
     482     * @deprecated 4.9.0 Use clean_site_cache
     483     *
     484     * @param int $blog_id Blog ID.
     485     */
     486    do_action_deprecated( 'refresh_blog_details', array( $blog_id ), '4.9.0', 'clean_site_cache' );
    479487}
    480488
Note: See TracChangeset for help on using the changeset viewer.