Definition:
function switch_to_blog( $new_blog, $validate = false ) {}
Switch the current blog.
This function is useful if you need to pull posts, or other information, from other blogs. You can switch back afterwards using restore_current_blog().
Parameters
- int $new_blog: The id of the blog you want to switch to. Default: current blog
- bool $validate: Whether to check if $new_blog exists before proceeding
Return values
returns:True on success, False if the validation failed
Defined actions
- switch_blog
do_action( 'switch_blog', $blog_id, $blog_id );
- switch_blog
do_action('switch_blog', $blog_id, $prev_blog_id);
Source code
function switch_to_blog( $new_blog, $validate = false ) { global $wpdb, $table_prefix, $blog_id, $switched, $switched_stack, $wp_roles, $wp_object_cache; if ( empty($new_blog) ) $new_blog = $blog_id; if ( $validate && ! get_blog_details( $new_blog ) ) return false; if ( empty($switched_stack) ) $switched_stack = array(); $switched_stack[] = $blog_id; /* If we're switching to the same blog id that we're on, * set the right vars, do the associated actions, but skip * the extra unnecessary work */ if ( $blog_id == $new_blog ) { do_action( 'switch_blog', $blog_id, $blog_id ); $switched = true; return true; } $wpdb->set_blog_id($new_blog); $table_prefix = $wpdb->prefix; $prev_blog_id = $blog_id; $blog_id = $new_blog; 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); $switched = true; return true; }
2925
No comments yet... Be the first to leave a reply!