Menu Adam R Brown

WP hooks navigation: Home/browseActions indexFilters index

Source View: switch_blog

To save our bandwidth, we show only a snippet of code around each occurence of the hook. View complete file in SVN (without highlighting).

Understanding Source Code

The best way to understand what a hook does is to look at where it occurs in the source code.

Remember, this hook may occur in more than one file. Moreover, the hook's context may change from version to version.

Source View

This hook occurs 4 times in this file.

Line Code
518            *
519            * @since MU (3.0.0)
520            * @since 5.4.0 The `$context` parameter was added.
521            *
522            * @param int    $new_blog_id  New blog ID.
523            * @param int    $prev_blog_id Previous blog ID.
524            * @param string $context      Additional context. Accepts 'switch' when called from switch_to_blog()
525            *                             or 'restore' when called from restore_current_blog().
526            */
527           do_action( 'switch_blog', $new_blog_id, $prev_blog_id, 'switch' );
528
529           $GLOBALS['switched'] = true;
530
531           return true;
532      }
533
534      $wpdb->set_blog_id( $new_blog_id );
535      $GLOBALS['table_prefix'] = $wpdb->get_blog_prefix();
536      $GLOBALS['blog_id']      = $new_blog_id;
 
Line Code
554                } else {
555                     wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'useremail', 'userslugs', 'site-transient', 'site-options', 'blog-lookup', 'blog-details', 'rss', 'global-posts', 'blog-id-cache', 'networks', 'sites', 'site-details', 'blog_meta' ) );
556                }
557
558                wp_cache_add_non_persistent_groups( array( 'counts', 'plugins' ) );
559           }
560      }
561
562      /** This filter is documented in wp-includes/ms-blogs.php */
563      do_action( 'switch_blog', $new_blog_id, $prev_blog_id, 'switch' );
564
565      $GLOBALS['switched'] = true;
566
567      return true;
568 }
569
570 /**
571  * Restore the current blog, after calling switch_to_blog().
572  *
 
Line Code
588      if ( empty( $GLOBALS['_wp_switched_stack'] ) ) {
589           return false;
590      }
591
592      $new_blog_id  = array_pop( $GLOBALS['_wp_switched_stack'] );
593      $prev_blog_id = get_current_blog_id();
594
595      if ( $new_blog_id == $prev_blog_id ) {
596           /** This filter is documented in wp-includes/ms-blogs.php */
597           do_action( 'switch_blog', $new_blog_id, $prev_blog_id, 'restore' );
598
599           // If we still have items in the switched stack, consider ourselves still 'switched'.
600           $GLOBALS['switched'] = ! empty( $GLOBALS['_wp_switched_stack'] );
601
602           return true;
603      }
604
605      $wpdb->set_blog_id( $new_blog_id );
606      $GLOBALS['blog_id']      = $new_blog_id;
 
Line Code
625                } else {
626                     wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'useremail', 'userslugs', 'site-transient', 'site-options', 'blog-lookup', 'blog-details', 'rss', 'global-posts', 'blog-id-cache', 'networks', 'sites', 'site-details', 'blog_meta' ) );
627                }
628
629                wp_cache_add_non_persistent_groups( array( 'counts', 'plugins' ) );
630           }
631      }
632
633      /** This filter is documented in wp-includes/ms-blogs.php */
634      do_action( 'switch_blog', $new_blog_id, $prev_blog_id, 'restore' );
635
636      // If we still have items in the switched stack, consider ourselves still 'switched'.
637      $GLOBALS['switched'] = ! empty( $GLOBALS['_wp_switched_stack'] );
638
639      return true;
640 }
641
642 /**
643  * Switches the initialized roles and current user capabilities to another site.