switch_to_blog

説明

bool switch_to_blog( int $new_blog [ , bool $deprecated = null ] )
ブログを切り替える。

パラメータ

  • $new_blog
    切り替えるブログIDを指定。
  • $deprecated
    非推奨(使用しないこと)。

返り値

常にtrueを返す。

注意

マルチサイトにおいて他サイトの情報を取得したり、更新したりする場合に使用する。基本的な使い方は、このswitch_to_blog関数を使ってブログを切り替え、そのブログに対して処理を行った後、 restore_current_blog関数を使用して元のブログに戻すという流れになる。

このswitch_to_blog関数では、ブログの切り替えを行う前に現在のブログIDをストックし、対で使用されるrestore_current_blog関数ではストックされているブログIDを取り出して元のブログを戻している。なおパラメータ$new_blogが空の場合は、現在のブログIDが適用される。$new_blogが現在のブログIDの場合でも切り替え処理は成功となる。

[5.4.0]'switch_blog'アクションはrestore_current_blog関数からも実行され、どちらから実行されたかを判別可能にするパラメータ$contextが追加された。$contextにはswitch_to_blog関数の場合は'switch'が、restore_current_blog関数の場合は'restore'が格納されている。


使用例

  • $blog_idのブログに切り替える。
    <?php
    switch_to_blog( $blog_id );
    
    // ここに切り替えたブログ向けの処理を記述
    
    restore_current_blog();
    ?>

フィルター

直接実行するフィルターはありません。

アクション

[MU]ブログを切り替えると、'switch_blog'アクションを実行する。パラメータ$new_blogは本関数が受け取ったブログIDが、$prev_blog_idには変更前のブログIDが格納されている($new_blogが現在のブログIDの場合でもこのアクションは実行する)。[5.4.0]パラメータ$contextには'switch'が格納されている。
do_action( 'switch_blog', $new_blog, $prev_blog_id, $context );

ソースファイル

/wp-includes/ms-blogs.php

最終更新 : 2020年04月07日 12:56



お勧め

フィードにサムネイル画像を追加する(2022年11月1日 更新)

WordPressが出力するの標準のフィードには、各投稿のサムネイル画像の情報が含まれていない。ネットで検索してみるといくつかの方法があることがわかったので、その中から2つ試してみた。

投稿一覧に「投稿フォーマット」フィルターが追加される(2019年4月12日 更新)

WordPress 5.2 Beta2(以降5.2Beta2)のソースコードを眺めていると、投稿一覧ページのフィルター機能に「投稿フォーマット」(select要素)が追加されていた。

5.5の機能強化:コメントフォームのちょっとした改良(2020年8月12日 更新)

来月にリリースされるWordPress 5.5に向けてBeta 1、2、3と公開が続いている。「WordPress 5.5 Beta 3(以降Beta 3)」のソースコードを見ていくと、コメントフォームを表示する comment_form関数が機能拡張されていた。

Login rebuilderに「XML-RPC設定」を追加しました(2018年5月27日 更新)

公式サイトで公開しているプラグイン「Login rebuilder」をバージョンアップし、XML-RPCリクエストの管理機能を追加しました。Login rebuilderの主たる機能は、ログインページをサイト別にユニークなURLに変更し、ログインページへの不正アクセスを回避することです。WordPressのXML-RPCリクエストはピンバックや外部ツールやサイトなどとの連携に利用されていますが、今回追加した機能ではXML-RPCリクエストの処理に対していくつかの制限できるようにしています。

index.htmlでアーカイブページを表示させる(2011年10月14日 更新)

静的なサイトでは、各ディレクトリにindex.htmlファイルを置き、そのディレクトリの内容を紹介することが多い。WordPressで構築したサイトも同様にできないかと考え、試行錯誤してみた(こんなことを考えてるのは自分だけだろうか!?)。