Ticket #18387: 18387.diff
| File 18387.diff, 4.8 KB (added by , 13 years ago) |
|---|
-
wp-includes/load.php
409 409 wp_cache_init(); 410 410 411 411 if ( function_exists( 'wp_cache_add_global_groups' ) ) { 412 wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss', 'global-posts' ) );412 wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss', 'global-posts', 'blog-id-cache' ) ); 413 413 wp_cache_add_non_persistent_groups( array( 'comment', 'counts', 'plugins' ) ); 414 414 } 415 415 } -
wp-includes/ms-blogs.php
253 253 $blog_id = (int) $blog_id; 254 254 $details = get_blog_details( $blog_id, false ); 255 255 256 wp_cache_delete( $blog_id , 'blog-details' ); 257 wp_cache_delete( $blog_id . 'short' , 'blog-details' ); 258 wp_cache_delete( md5( $details->domain . $details->path ) , 'blog-lookup' ); 259 wp_cache_delete( 'current_blog_' . $details->domain, 'site-options' ); 260 wp_cache_delete( 'current_blog_' . $details->domain . $details->path, 'site-options' ); 261 wp_cache_delete( 'get_id_from_blogname_' . trim( $details->path, '/' ), 'blog-details' ); 256 clean_blog_cache( $details ); 262 257 263 258 do_action( 'refresh_blog_details', $blog_id ); 264 259 } … … 317 312 } 318 313 319 314 /** 315 * Clean the blog cache 316 * 317 * @since 3.5.0 318 * 319 * @param stdClass $blog The blog details as returned from get_blog_details() 320 */ 321 function clean_blog_cache( $blog ) { 322 $blog_id = $blog->blog_id; 323 $domain_path_key = md5( $blog->domain . $blog->path ); 324 325 wp_cache_delete( $blog_id , 'blog-details' ); 326 wp_cache_delete( $blog_id . 'short' , 'blog-details' ); 327 wp_cache_delete( $domain_path_key, 'blog-lookup' ); 328 wp_cache_delete( 'current_blog_' . $blog->domain, 'site-options' ); 329 wp_cache_delete( 'current_blog_' . $blog->domain . $blog->path, 'site-options' ); 330 wp_cache_delete( 'get_id_from_blogname_' . trim( $blog->path, '/' ), 'blog-details' ); 331 wp_cache_delete( $domain_path_key, 'blog-id-cache' ); 332 } 333 334 /** 320 335 * Retrieve option value for a given blog id based on name of option. 321 336 * 322 337 * If the option does not exist or does not have a value, then the return value -
wp-includes/ms-functions.php
332 332 * 333 333 * @param string $domain 334 334 * @param string $path Optional. Not required for subdomain installations. 335 * @return int 335 * @return int 0 if no blog found, otherwise the ID of the matching blog 336 336 */ 337 337 function get_blog_id_from_url( $domain, $path = '/' ) { 338 338 global $wpdb; 339 339 340 $domain = strtolower( $ wpdb->escape( $domain ));341 $path = strtolower( $ wpdb->escape( $path ));340 $domain = strtolower( $domain ); 341 $path = strtolower( $path ); 342 342 $id = wp_cache_get( md5( $domain . $path ), 'blog-id-cache' ); 343 343 344 if ( $id == -1 ) {// blog does not exist344 if ( $id == -1 ) // blog does not exist 345 345 return 0; 346 } elseif ( $id ) { 347 return (int)$id; 348 } 346 elseif ( $id ) 347 return (int) $id; 349 348 350 $id = $wpdb->get_var( "SELECT blog_id FROM $wpdb->blogs WHERE domain = '$domain' and path = '$path' /* get_blog_id_from_url */");349 $id = $wpdb->get_var( $wpdb->prepare( "SELECT blog_id FROM $wpdb->blogs WHERE domain = %s and path = %s /* get_blog_id_from_url */", $domain, $path ) ); 351 350 352 if ( ! $id ) {351 if ( ! $id ) { 353 352 wp_cache_set( md5( $domain . $path ), -1, 'blog-id-cache' ); 354 return false;353 return 0; 355 354 } 355 356 356 wp_cache_set( md5( $domain . $path ), $id, 'blog-id-cache' ); 357 357 358 358 return $id; -
wp-admin/includes/ms.php
55 55 global $wpdb, $current_site; 56 56 57 57 $switch = false; 58 if ( $blog_id != $wpdb->blogid ) {58 if ( get_current_blog_id() != $blog_id ) { 59 59 $switch = true; 60 60 switch_to_blog( $blog_id ); 61 $blog = get_blog_details( $blog_id );62 } else {63 $blog = $GLOBALS['current_blog'];64 61 } 65 62 63 $blog = get_blog_details( $blog_id ); 64 66 65 do_action( 'delete_blog', $blog_id, $drop ); 67 66 68 67 $users = get_users( array( 'blog_id' => $blog_id, 'fields' => 'ids' ) ); … … 81 80 $drop = false; 82 81 83 82 if ( $drop ) { 84 85 83 $drop_tables = apply_filters( 'wpmu_drop_tables', $wpdb->tables( 'blog' ) ); 86 84 87 85 foreach ( (array) $drop_tables as $table ) { … … 122 120 if ( $dir != $top_dir) 123 121 @rmdir( $dir ); 124 122 } 123 124 clean_blog_cache( $blog ); 125 125 } 126 126 127 127 if ( $switch )