Ticket #19009: 19009.diff

File 19009.diff, 1.7 KB (added by nacin, 19 months ago)
Line 
1Index: wp-admin/includes/ms.php
2===================================================================
3--- wp-admin/includes/ms.php    (revision 19019)
4+++ wp-admin/includes/ms.php    (working copy)
5@@ -61,8 +61,6 @@
6                switch_to_blog( $blog_id );
7        }
8 
9-       $blog_prefix = $wpdb->get_blog_prefix( $blog_id );
10-
11        do_action( 'delete_blog', $blog_id, $drop );
12 
13        $users = get_users( array( 'blog_id' => $blog_id, 'fields' => 'ids' ) );
14@@ -76,17 +74,15 @@
15 
16        update_blog_status( $blog_id, 'deleted', 1 );
17 
18+       if ( 1 == $blog_id )
19+               $drop = false;
20+
21        if ( $drop ) {
22-               if ( substr( $blog_prefix, -1 ) == '_' )
23-                       $blog_prefix =  substr( $blog_prefix, 0, -1 ) . '\_';
24 
25-               $drop_tables = $wpdb->get_results( "SHOW TABLES LIKE '{$blog_prefix}%'", ARRAY_A );
26-               $drop_tables = apply_filters( 'wpmu_drop_tables', $drop_tables );
27-
28-               reset( $drop_tables );
29-               foreach ( (array) $drop_tables as $drop_table) {
30-                       $wpdb->query( "DROP TABLE IF EXISTS ". current( $drop_table ) ."" );
31+               foreach ( $wpdb->tables( 'blog' ) as $table ) {
32+                       $wpdb->query( "DROP TABLE IF EXISTS `$table`" );
33                }
34+
35                $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->blogs WHERE blog_id = %d", $blog_id ) );
36                $dir = apply_filters( 'wpmu_delete_blog_upload_dir', WP_CONTENT_DIR . "/blogs.dir/{$blog_id}/files/", $blog_id );
37                $dir = rtrim( $dir, DIRECTORY_SEPARATOR );
38@@ -120,16 +116,6 @@
39                }
40        }
41 
42-       $wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key = '{$blog_prefix}autosave_draft_ids'" );
43-       $blogs = get_site_option( 'blog_list' );
44-       if ( is_array( $blogs ) ) {
45-               foreach ( $blogs as $n => $blog ) {
46-                       if ( $blog['blog_id'] == $blog_id )
47-                               unset( $blogs[$n] );
48-               }
49-               update_site_option( 'blog_list', $blogs );
50-       }
51-
52        if ( $switch === true )
53                restore_current_blog();
54 }