wpseek.com
A WordPress-centric search engine for devs and theme authors
switch_to_blog › WordPress Function
Sincen/a
Deprecatedn/a
› switch_to_blog ( $new_blog_id, $deprecated = null )
| Parameters: (2) |
|
| See: | |
| Returns: |
|
| Defined at: |
|
| Codex: | |
| Change Log: |
|
Switches 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(). PHP code loaded with the originally requested site, such as code from a plugin or theme, does not switch. See #14941.Related Functions: switch_to_locale, wp_cache_switch_to_blog, switch_to_user_locale, switch_theme, the_custom_logo
Source
function switch_to_blog( $new_blog_id, $deprecated = null ) {
global $wpdb;
$prev_blog_id = get_current_blog_id();
if ( empty( $new_blog_id ) ) {
$new_blog_id = $prev_blog_id;
}
$GLOBALS['_wp_switched_stack'][] = $prev_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 ( $new_blog_id === $prev_blog_id ) {
/**
* Fires when the blog is switched.
*
* @since MU (3.0.0)
* @since 5.4.0 The `$context` parameter was added.
*
* @param int $new_blog_id New blog ID.
* @param int $prev_blog_id Previous blog ID.
* @param string $context Additional context. Accepts 'switch' when called from switch_to_blog()
* or 'restore' when called from restore_current_blog().
*/
do_action( 'switch_blog', $new_blog_id, $prev_blog_id, 'switch' );
$GLOBALS['switched'] = true;
return true;
}
$wpdb->set_blog_id( $new_blog_id );
$GLOBALS['table_prefix'] = $wpdb->get_blog_prefix();
$GLOBALS['blog_id'] = $new_blog_id;
wp_cache_switch_to_blog( $new_blog_id );
/** This filter is documented in wp-includes/ms-blogs.php */
do_action( 'switch_blog', $new_blog_id, $prev_blog_id, 'switch' );
$GLOBALS['switched'] = true;
return true;
}