# WordPressのマルチサイトでブログパスでswitch_to_blogする。

- リンク: https://torounit.com/blog/wordpress%e3%81%ae%e3%83%9e%e3%83%ab%e3%83%81%e3%82%b5%e3%82%a4%e3%83%88%e3%81%a7%e3%83%96%e3%83%ad%e3%82%b0%e3%83%91%e3%82%b9%e3%81%a7switch_to_blog%e3%81%99%e3%82%8b%e3%80%82/
- 公開日: 2013-04-25T10:00:53+09:00
- 作成者: Toro\_Unit

最近マルチサイト案件が多かったりするのですが、各ブログを横断してリンクをつないだり
みたいなことをたくさんやりました。
 扱うサイトも多く、ブログを削除して作り直して・・・
みたいなことが結構あったのですが、そのときに当然blog_idもかわってしまいます。（まぁ
そりゃそうだよね）

で、マルチサイトの肝になるところといえば、switch_to_blog でブログを切り替えてあー
だこーだすることだとは思うのですが、これが、

[php]
 switch_to_blog(1); [/php]

みたいな感じで、変更先のブログのIDを指定せねばならないのです。これがちょっと使い勝手
が悪いし、テーマを見たときにどこのブログに変わったのか、よくわかりません。

という訳でソースを眺めていたら、get_id_from_blogname( $slug )といういかにもな関数
がありました。

example.com/hoge/ もしくは hoge.example.com

という子サイトがあった場合、
 [php] get_id_from_blogname( "hoge" ); [/php] とすると、
blog_idを教えてくれるので、

[php]
 switch_to_blog( get_id_from_blogname( "hoge" ) ); [/php]

といった感じで、サイトパスで切り替えることができます。こっちの方が解り易いですね。
テーマだけ別環境で開発といった場合でもちょっとは反映作業などもスムーズになるのでは
ないでしょうか。

まぁ、案件も終盤になった頃に見つけたのですがね・・・・

マルチサイトは発展途上なイメージですが、ちゃんと使うと結構いろいろなことができそう！
