Changeset 37918
- Timestamp:
- 06/29/2016 07:31:49 PM (9 years ago)
- Location:
- trunk/src/wp-includes
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/class-wp-site.php
r37917 r37918 223 223 * 224 224 * Allows current multisite naming conventions when getting properties. 225 * Allows access to extended site properties. 225 226 * 226 227 * @since 4.6.0 … … 240 241 case 'network_id': 241 242 return (int) $this->site_id; 243 case 'blogname': 244 case 'siteurl': 245 case 'post_count': 246 case 'home': 247 if ( ! did_action( 'ms_loaded' ) ) { 248 return null; 249 } 250 $details = $this->get_details(); 251 return $details->$key; 242 252 } 243 253 … … 249 259 * 250 260 * Allows current multisite naming conventions when checking for properties. 261 * Checks for extended site properties. 251 262 * 252 263 * @since 4.6.0 … … 262 273 case 'site_id': 263 274 case 'network_id': 275 return true; 276 case 'blogname': 277 case 'siteurl': 278 case 'post_count': 279 case 'home': 280 if ( ! did_action( 'ms_loaded' ) ) { 281 return false; 282 } 264 283 return true; 265 284 } … … 293 312 } 294 313 } 314 315 /** 316 * Retrieve the details for this site. 317 * 318 * This method is used internally to lazy-load the extended properties of a site. 319 * 320 * @since 4.6.0 321 * @access private 322 * 323 * @see WP_Site::__get() 324 * 325 * @return object A raw site object with all details included. 326 */ 327 private function get_details() { 328 $details = wp_cache_get( $this->blog_id, 'site-details' ); 329 330 if ( false === $details ) { 331 332 switch_to_blog( $this->blog_id ); 333 // Create a raw copy of the object for backwards compatibility with the filter below. 334 $details = new stdClass(); 335 foreach ( get_object_vars( $this ) as $key => $value ) { 336 $details->$key = $value; 337 } 338 $details->blogname = get_option( 'blogname' ); 339 $details->siteurl = get_option( 'siteurl' ); 340 $details->post_count = get_option( 'post_count' ); 341 $details->home = get_option( 'home' ); 342 restore_current_blog(); 343 344 $cache_details = true; 345 foreach ( array( 'blogname', 'siteurl', 'post_count', 'home' ) as $field ) { 346 if ( false === $details->$field ) { 347 $cache_details = false; 348 break; 349 } 350 } 351 352 if ( $cache_details ) { 353 wp_cache_set( $this->blog_id, $details, 'site-details' ); 354 } 355 } 356 357 /** 358 * Filters a site's extended properties. 359 * 360 * @since 4.6.0 361 * 362 * @param object $details The site details. 363 */ 364 $details = apply_filters( 'site_details', $details ); 365 366 return $details; 367 } 295 368 } -
trunk/src/wp-includes/load.php
r37690 r37918 510 510 511 511 if ( function_exists( 'wp_cache_add_global_groups' ) ) { 512 wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'useremail', 'userslugs', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', ' rss', 'global-posts', 'blog-id-cache', 'networks', 'sites' ) );512 wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'useremail', 'userslugs', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'site-details', 'rss', 'global-posts', 'blog-id-cache', 'networks', 'sites' ) ); 513 513 wp_cache_add_non_persistent_groups( array( 'counts', 'plugins' ) ); 514 514 } -
trunk/src/wp-includes/ms-blogs.php
r37895 r37918 456 456 457 457 wp_cache_delete( $blog_id, 'sites' ); 458 wp_cache_delete( $blog_id, 'site-details' ); 458 459 wp_cache_delete( $blog_id , 'blog-details' ); 459 460 wp_cache_delete( $blog_id . 'short' , 'blog-details' ); … … 823 824 wp_cache_add_global_groups( $global_groups ); 824 825 } else { 825 wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'useremail', 'userslugs', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss', 'global-posts', 'blog-id-cache', 'networks', 'sites' ) );826 wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'useremail', 'userslugs', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss', 'global-posts', 'blog-id-cache', 'networks', 'sites', 'site-details' ) ); 826 827 } 827 828 wp_cache_add_non_persistent_groups( array( 'counts', 'plugins' ) ); … … 894 895 wp_cache_add_global_groups( $global_groups ); 895 896 } else { 896 wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'useremail', 'userslugs', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss', 'global-posts', 'blog-id-cache', 'networks', 'sites' ) );897 wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'useremail', 'userslugs', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss', 'global-posts', 'blog-id-cache', 'networks', 'sites', 'site-details' ) ); 897 898 } 898 899 wp_cache_add_non_persistent_groups( array( 'counts', 'plugins' ) );
Note: See TracChangeset
for help on using the changeset viewer.