マルチサイト化したWordPressをテーマ外から表示してみた

使えるネタ、知ってても使えないネタ等々あるかと思いますが、WordPressを利用して色々なカスタマイズを行った時に、調べてみた項目をチョコチョコと残しておきます。

今回はWordPressをマルチサイト化した時に、各サイトのデータにアクセスする方法と、テーマ外からWordPressに接続する力技をお送りします。

マルチサイト時に他のブログのデータを取得する

現在表示しているブログとは別のブログの記事を取得する際には、

switch_to_blog($BID);  

で、「$BID」に取得したいブログのIDを指定することで、指定したブログのデータを引っ張ることが出来ます。

また、元のブログに戻りたい時は、

restore_current_blog();  

を呼び出すことで、戻ることが出来ます。

テーマ外から関数やテンプレートタグを利用する

利用する機会は殆ど無いと思いますが、以前どうしてもテーマ外でWordPress内のデータを取り扱いたかったので調べてみたところ、意外と簡単に実装することが出来ることがわかりました。

参考:WordPressのテンプレートに、Ajaxを利用する | PHPで感じるほんの少しの喜び

参考サイトにあるように「wp-config.php」を読みこむだけで、後はテーマ外のPHPからでも、the_title();the_content()等のテンプレートタグや、query_posts();get_post_meta();等の関数を利用することが出来るようになります。

Flashや、Ajax等の通信用のデータとして、自由なフォーマットで一覧を作りたい時等に使えそうです。