wpmu_delete_blog( int $blog_id, bool $drop = false )

Deletes a site.

Parameters

$blog_idintrequired
Site ID.
$dropbooloptional
True if site’s database tables should be dropped.

Default:false

Source

function wpmu_delete_blog( $blog_id, $drop = false ) {	$blog_id = (int) $blog_id;	$switch = false;	if ( get_current_blog_id() !== $blog_id ) {	$switch = true;	switch_to_blog( $blog_id );	}	$blog = get_site( $blog_id );	$current_network = get_network();	// If a full blog object is not available, do not destroy anything.	if ( $drop && ! $blog ) {	$drop = false;	}	// Don't destroy the initial, main, or root blog.	if ( $drop	&& ( 1 === $blog_id || is_main_site( $blog_id )	|| ( $blog->path === $current_network->path && $blog->domain === $current_network->domain ) )	) {	$drop = false;	}	$upload_path = trim( get_option( 'upload_path' ) );	// If ms_files_rewriting is enabled and upload_path is empty, wp_upload_dir is not reliable.	if ( $drop && get_site_option( 'ms_files_rewriting' ) && empty( $upload_path ) ) {	$drop = false;	}	if ( $drop ) {	wp_delete_site( $blog_id );	} else {	/** This action is documented in wp-includes/ms-blogs.php */	do_action_deprecated( 'delete_blog', array( $blog_id, false ), '5.1.0' );	$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 );	/** This action is documented in wp-includes/ms-blogs.php */	do_action_deprecated( 'deleted_blog', array( $blog_id, false ), '5.1.0' );	}	if ( $switch ) {	restore_current_blog();	} } 

Hooks

do_action_deprecated( ‘deleted_blog’, int $site_id, bool $drop )

Fires after the site is deleted from the network.

do_action_deprecated( ‘delete_blog’, int $site_id, bool $drop )

Fires before a site is deleted.

Changelog

VersionDescription
5.1.0Use wp_delete_site() internally to delete the site row from the database.
3.0.0Introduced.

User Contributed Notes

  1. Skip to note 2 content
    /** * Deletes a site from multi site network */ $site_id = 2; if ( ! function_exists( 'wpmu_delete_blog' ) ) { require_once ABSPATH . '/wp-admin/includes/ms.php'; } $drop = true; wpmu_delete_blog( $site_id, $drop ); if ( $drop ) {	echo "Site deleted successfully"; } else {	$status = get_blog_status( $site_id, 'deleted' );	if ( $status ) {	echo "Site deleted successfully";	} }

You must log in before being able to contribute a note or feedback.