Advertisements

restore_current_blog

Definition:
function restore_current_blog() {}

Restore the current blog, after calling switch_to_blog()

Return values

returns:True on success, False if we’re already on the current blog

Defined actions

  • switch_blog
    do_action( 'switch_blog', $blog, $blog );
  • switch_blog
    do_action('switch_blog', $blog_id, $prev_blog_id);

Source code

function restore_current_blog() {

	global $table_prefix, $wpdb, $blog_id, $switched, $switched_stack, $wp_roles, $wp_object_cache;



	if ( !$switched )

		return false;



	if ( !is_array( $switched_stack ) )

		return false;



	$blog = array_pop( $switched_stack );

	if ( $blog_id == $blog ) {

		do_action( 'switch_blog', $blog, $blog );

		/* If we still have items in the switched stack, consider ourselves still 'switched' */

		$switched = ( is_array( $switched_stack ) && count( $switched_stack ) > 0 );

		return true;

	}



	$wpdb->set_blog_id($blog);

	$prev_blog_id = $blog_id;

	$blog_id = $blog;

	$table_prefix = $wpdb->prefix;



	if ( is_object( $wp_roles ) ) {

		$wpdb->suppress_errors();

		if ( method_exists( $wp_roles ,'_init' ) )

			$wp_roles->_init();

		elseif ( method_exists( $wp_roles, '__construct' ) )

			$wp_roles->__construct();

		$wpdb->suppress_errors( false );

	}



	if ( did_action('init') ) {

		$current_user = wp_get_current_user();

		if ( is_object( $current_user ) )

			$current_user->for_blog( $blog_id );

	}



	if ( is_object( $wp_object_cache ) && isset( $wp_object_cache->global_groups ) )

		$global_groups = $wp_object_cache->global_groups;

	else

		$global_groups = false;



	wp_cache_init();

	if ( function_exists('wp_cache_add_global_groups') ) {

		if ( is_array( $global_groups ) )

			wp_cache_add_global_groups( $global_groups );

		else

			wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss', 'global-posts' ) );

		wp_cache_add_non_persistent_groups(array( 'comment', 'counts', 'plugins' ));

	}



	do_action('switch_blog', $blog_id, $prev_blog_id);



	/* If we still have items in the switched stack, consider ourselves still 'switched' */

	$switched = ( is_array( $switched_stack ) && count( $switched_stack ) > 0 );

	return true;

}

2741

Advertisements

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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: