【小技】マルチサイトで子ブログを切り替えられる「switch_to_blog」の使い方

マルチサイトで、親サイトや他の子サイトの情報を
取得したり、更新したりする必要が出てくるかと思います。

そんな時に便利なテンプレートタグがあります。
「switch_to_blog」です。

説明

bool switch_to_blog( int $new_blog [ , bool $deprecated = null ] )

$new_blog:
切り替えるブログIDを指定します。

$deprecated:
非推奨(使用しないこと)

返り値:
常にtrueを返します。

注意点

switch_to_blog 関数を使って切り替えて、何かしらの処理を行った後、
restore_current_blog 関数を使用して元のブログに戻す必要があります。

使い方(例)

// 現在のブログIDを取得する。
$blog_id = get_current_blog_id();

// 全ブログのブログIDを取得
global $wpdb;
$blogs = $wpdb->get_results( "SELECT blog_id FROM wp_blogs ORDER BY blog_id" );

// 各ブログの最新記事を指定件数取得する
foreach( $blogs as $blog ) {
    switch_to_blog( $blog->blog_id );
    $posts = get_posts( "numberposts=5" );

    if( $posts ) {
        foreach( $posts as $post ) {
        }
    }
    // ブログを切り替え前に戻す
    restore_current_blog();
}
本ページはアフィリエイトプログラムによる収益を得ています

小技集

Posted by 管理人