WordPressのマルチサイト機能を用いてサイトを構築することが多いですが、親サイトに子サイトの記事一覧を表示させようしても標準機能では上手く行かなかったので “WP Over Network” と呼ばれるプラグインを使って実装してみました。
WP Over Networkってなに?
WP Over Networkとは、WordPressのマルチサイト機能を利用したサイト上で、親サイトから子サイトの記事情報を取得するためのプラグインです。少々古いプラグインですが、2017年01月現在のWordPressでも正常に動作しています。
参考 エックスサーバーでWordPressのサブドメイン型マルチサイトを運営する方法
参考 マルチサイト機能でサブディレクトリ型とサブドメイン型を共存させる方法
WP Over Networkの使いかた
インストール
他のプラグインと同様に “ダッシュボード→プラグイン” から検索してインストールすることができます。
子サイトの記事情報を取得する
WP Over Networkを用いて子サイトの記事を取得するやり方は “ショートコード” を使う方法と “関数” を使う方法があります。
ショートコード
WordPressの “投稿” や “固定ページ” の記事作成にて子サイトの記事情報を取得する場合にはショートコードが適しており、以下のショートコードを記述するだけで、デフォルト設定を用いた記事取得が行われます。
[wponw_recent_post_list]
また、表示件数や取得元ブログなどを指定することができ「親ブログを除いて10件の投稿を表示する」と言った場合には以下のように指定します。
[wponw_recent_post_list exclude_blog_ids=1 numberposts=10 post_type=post]
関数
テンプレートを直接修正する場合には関数が用意されています。例えば「親ブログを除いて10件の投稿を表示する」と言った場合には以下のように指定します。
<?php $args = array( 'exclude_blog_ids' => '1' 'post_type' => 'post', 'post_status' => 'publish', 'numberposts' => 10 ); $posts = wponw::get_posts($args); global $post; foreach ( $posts as $post ): switch_to_blog( $post->blog_id ); <!--表示する記述--> restore_current_blog(); endforeach; wp_reset_query(); ?>
記事情報が取得できない!?
このWP Over Networkは、親サイトや子サイトが “検索エンジンがサイトをインデックスしないようにする” に指定されていると記事を取得せずに表示されません。ブログの構築時などに指定する場合が多いので注意が必要です。