WordPress.org

Make WordPress Core

Changeset 40344


Ignore:
Timestamp:
03/28/17 02:31:13 (6 months ago)
Author:
jeremyfelt
Message:

Multisite: Allow falsy properties to be cached in site-details.

In previous iterations of WP_Site, there was concern that not all properties would be available when storing a site's details in cache. When introduced in [37918], an ms_loaded check was added to address this concern. Any properties that are still false after ms_loaded really are false and can be cached as such.

Props flixos90.
Fixes #40247.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp-site.php

    r38936 r40344  
    334334            restore_current_blog(); 
    335335 
    336             $cache_details = true; 
    337             foreach ( array( 'blogname', 'siteurl', 'post_count', 'home' ) as $field ) { 
    338                 if ( false === $details->$field ) { 
    339                     $cache_details = false; 
    340                     break; 
    341                 } 
    342             } 
    343  
    344             if ( $cache_details ) { 
    345                 wp_cache_set( $this->blog_id, $details, 'site-details' ); 
    346             } 
     336            wp_cache_set( $this->blog_id, $details, 'site-details' ); 
    347337        } 
    348338 
  • trunk/tests/phpunit/tests/multisite/siteDetails.php

    r40305 r40344  
    126126        $this->assertNotFalse( $cached_result ); 
    127127    } 
     128 
     129    /** 
     130     * @ticket 40247 
     131     */ 
     132    public function test_site_details_cached_including_false_values() { 
     133        $id = self::factory()->blog->create(); 
     134 
     135        $site = get_site( $id ); 
     136 
     137        // Trigger retrieving site details (post_count is not set on new sites) 
     138        $post_count = $site->post_count; 
     139 
     140        $cached_details = wp_cache_get( $site->id, 'site-details' ); 
     141 
     142        wpmu_delete_blog( $id, true ); 
     143        wp_update_network_site_counts(); 
     144 
     145        $this->assertNotFalse( $cached_details ); 
     146    } 
    128147} 
    129148 
Note: See TracChangeset for help on using the changeset viewer.