Ticket #36935: 36935.7.diff
File 36935.7.diff, 5.1 KB (added by , 9 years ago) |
---|
-
src/wp-includes/class-wp-site.php
218 218 * Getter. 219 219 * 220 220 * Allows current multisite naming conventions when getting properties. 221 * Allows access to extended site properties. 221 222 * 222 223 * @since 4.6.0 223 224 * @access public … … 235 236 return $this->site_id; 236 237 case 'network_id': 237 238 return (int) $this->site_id; 239 case 'blogname': 240 case 'siteurl': 241 case 'post_count': 242 case 'home': 243 $details = $this->get_details(); 244 return $details->$key; 238 245 } 239 246 240 247 return null; … … 244 251 * Isset-er. 245 252 * 246 253 * Allows current multisite naming conventions when checking for properties. 254 * Checks for extended site properties. 247 255 * 248 256 * @since 4.6.0 249 257 * @access public … … 257 265 case 'blog_id': 258 266 case 'site_id': 259 267 case 'network_id': 268 case 'blogname': 269 case 'siteurl': 270 case 'post_count': 271 case 'home': 260 272 return true; 261 273 } 262 274 … … 288 300 $this->$key = $value; 289 301 } 290 302 } 303 304 /** 305 * Retrieve the details for this site. 306 * 307 * This method is used internally to lazy-load the extended properties of a site. 308 * 309 * @since 4.6.0 310 * @access private 311 * 312 * @see WP_Site::__get() 313 * 314 * @return object A raw site object with all details included. 315 */ 316 private function get_details() { 317 $details = wp_cache_get( $this->blog_id, 'site-details' ); 318 319 if ( false === $details ) { 320 321 switch_to_blog( $this->blog_id ); 322 // Create a raw copy of the object for backwards compatibility with the filter below. 323 $details = new stdClass(); 324 foreach ( get_object_vars( $this ) as $key => $value ) { 325 $details->$key = $value; 326 } 327 $details->blogname = get_option( 'blogname' ); 328 $details->siteurl = get_option( 'siteurl' ); 329 $details->post_count = get_option( 'post_count' ); 330 $details->home = get_option( 'home' ); 331 restore_current_blog(); 332 333 wp_cache_set( $this->blog_id, $details, 'site-details' ); 334 } 335 336 /** 337 * Filters a site's extended properties. 338 * 339 * @since MU 340 * 341 * @param object $details The site details. 342 */ 343 $details = apply_filters( 'site_details', $details ); 344 345 return $details; 346 } 291 347 } -
src/wp-includes/load.php
509 509 wp_cache_init(); 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 } 515 515 } -
src/wp-includes/ms-blogs.php
455 455 $domain_path_key = md5( $blog->domain . $blog->path ); 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' ); 460 461 wp_cache_delete( $domain_path_key, 'blog-lookup' ); … … 822 823 if ( is_array( $global_groups ) ) { 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' ) ); 828 829 } … … 893 894 if ( is_array( $global_groups ) ) { 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' ) ); 899 900 }