Changeset 41716
- Timestamp:
- 10/03/2017 06:40:32 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/ms-blogs.php
r41698 r41716 266 266 } 267 267 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 ); 290 269 } 291 270 … … 444 423 * @global bool $_wp_suspend_cache_invalidation 445 424 * 446 * @param WP_Site $blog The site objectto be cleared from cache.425 * @param WP_Site|int $blog The site object or ID to be cleared from cache. 447 426 */ 448 427 function clean_blog_cache( $blog ) { … … 451 430 if ( ! empty( $_wp_suspend_cache_invalidation ) ) { 452 431 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 ) ); 453 451 } 454 452 … … 477 475 478 476 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' ); 479 487 } 480 488 -
trunk/tests/phpunit/tests/multisite/site.php
r41715 r41716 1087 1087 /** 1088 1088 * @ticket 40201 1089 * @dataProvider data_get_site_caches 1090 */ 1091 public function test_clean_blog_cache_with_id( $key, $group ) { 1092 $site = get_site( self::$site_ids['make.wordpress.org/'] ); 1093 1094 $replacements = array( 1095 '%blog_id%' => $site->blog_id, 1096 '%domain%' => $site->domain, 1097 '%path%' => $site->path, 1098 '%domain_path_key%' => md5( $site->domain . $site->path ), 1099 ); 1100 1101 $key = str_replace( array_keys( $replacements ), array_values( $replacements ), $key ); 1102 1103 if ( 'sites' === $group ) { // This needs to be actual data for get_site() lookups. 1104 wp_cache_set( $key, (object) $site->to_array(), $group ); 1105 } else { 1106 wp_cache_set( $key, 'something', $group ); 1107 } 1108 1109 clean_blog_cache( $site->blog_id ); 1110 $this->assertFalse( wp_cache_get( $key, $group ) ); 1111 } 1112 1113 /** 1114 * @ticket 40201 1089 1115 */ 1090 1116 public function test_clean_blog_cache_resets_last_changed() { … … 1121 1147 wp_suspend_cache_invalidation( $suspend ); 1122 1148 $this->assertEquals( $old_count, did_action( 'clean_site_cache' ) ); 1149 } 1150 1151 /** 1152 * @ticket 40201 1153 */ 1154 public function test_clean_blog_cache_bails_on_empty_input() { 1155 $old_count = did_action( 'clean_site_cache' ); 1156 1157 clean_blog_cache( null ); 1158 $this->assertEquals( $old_count, did_action( 'clean_site_cache' ) ); 1159 } 1160 1161 /** 1162 * @ticket 40201 1163 */ 1164 public function test_clean_blog_cache_bails_on_non_numeric_input() { 1165 $old_count = did_action( 'clean_site_cache' ); 1166 1167 clean_blog_cache( 'something' ); 1168 $this->assertEquals( $old_count, did_action( 'clean_site_cache' ) ); 1169 } 1170 1171 /** 1172 * @ticket 40201 1173 */ 1174 public function test_clean_blog_cache_works_with_deleted_site() { 1175 $site_id = 12345; 1176 1177 wp_cache_set( $site_id, 'something', 'site-details' ); 1178 1179 clean_blog_cache( $site_id ); 1180 $this->assertFalse( wp_cache_get( $site_id, 'site-details' ) ); 1123 1181 } 1124 1182
Note: See TracChangeset
for help on using the changeset viewer.