Definition:
function wpmu_delete_blog( $blog_id, $drop = false ) {}
Delete a blog
Parameters
- int $blog_id: Blog ID
- bool $drop: True if blog’s table should be dropped. Default is false.
Defined filters
- wpmu_drop_tables
apply_filters( 'wpmu_drop_tables', $drop_tables ) - wpmu_delete_blog_upload_dir
apply_filters( 'wpmu_delete_blog_upload_dir', WP_CONTENT_DIR . "/blogs.dir/{$blog_id}/files/", $blog_id )
Defined actions
- delete_blog
do_action( 'delete_blog', $blog_id, $drop );
Source code
function wpmu_delete_blog( $blog_id, $drop = false ) {
global $wpdb;
$switch = false;
if ( $blog_id != $wpdb->blogid ) {
$switch = true;
switch_to_blog( $blog_id );
}
$blog_prefix = $wpdb->get_blog_prefix( $blog_id );
do_action( 'delete_blog', $blog_id, $drop );
$users = get_users( array( 'blog_id' => $blog_id, 'fields' => 'ids' ) );
// Remove users from this blog.
if ( ! empty( $users ) ) {
foreach ( $users as $user_id ) {
remove_user_from_blog( $user_id, $blog_id) ;
}
}
update_blog_status( $blog_id, 'deleted', 1 );
if ( $drop ) {
if ( substr( $blog_prefix, -1 ) == '_' )
$blog_prefix = substr( $blog_prefix, 0, -1 ) . '\_';
$drop_tables = $wpdb->get_results( "SHOW TABLES LIKE '{$blog_prefix}%'", ARRAY_A );
$drop_tables = apply_filters( 'wpmu_drop_tables', $drop_tables );
reset( $drop_tables );
foreach ( (array) $drop_tables as $drop_table) {
$wpdb->query( "DROP TABLE IF EXISTS ". current( $drop_table ) ."" );
}
$wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->blogs WHERE blog_id = %d", $blog_id ) );
$dir = apply_filters( 'wpmu_delete_blog_upload_dir', WP_CONTENT_DIR . "/blogs.dir/{$blog_id}/files/", $blog_id );
3381

February 12, 2011 


No comments yet... Be the first to leave a reply!