WordPress(ワードプレス)でホームページを作りたい、カスタムしたいという人のためのサイトです。

WordPressでマルチサイトの各サイトの新着情報を表示させる方法

TOP > カスタム方法 > WordPressでマルチサイトの各サイトの新着情報を表示させる方法

WordPressのマルチサイト機能を使ってサイトを運営していると、各サイトの最新投稿をどこかでまとめて表示させたいなーっていう事があるかと思います。
そういう時に便利なコードを紹介します。

WordPressでマルチサイトの各サイトの新着情報を表示させるコード

以下の2つのコードをfunctions.phpとindex.phpに追記します。

functions.phpに追加するコード

functions.phpに以下コードを追記してマルチサイト環境下で各サイトのデータを使い回せるように設定します。

function get_recentposts_from_network( $args = null ) {
$defaults = array( 'num' => 10, 'perblog' => 1, 'start' => 0 )
$r = wp_parse_args( $args, $defaults );
// 全ブログのBLOG_IDを取得
global $wpdb;
$blogs = $wpdb->get_results( "SELECT blog_id FROM wp_blogs ORDER BY blog_id" );
if( is_array( $blogs ) ) { reset( $blogs );
// 各ブログの最新記事を指定件数取得する
foreach( $blogs as $blog ) {
switch_to_blog( $blog->blog_id );
$posts = get_posts( "numberposts=" . $r['perblog'] );
if( $posts ) {
foreach( $posts as $post ) {
$recent_posts[] = $post->post_date;
$post->blog_id = $blog->blog_id;
$post_list[] = $post;
} // endforeach
unset( $posts );
} // endif ( $posts )
restore_current_blog();
} // endforeach
// 投稿日時で並べ替える
arsort( $recent_posts );
reset( $recent_posts );
foreach( (array) $recent_posts as $key => $details ) {
$t[$key] = $post_list[$key];
} // endforeach
unset($recent_posts);
$recent_posts = $t;
} //endif ( is_array( $blogs ) )
if( $recent_posts )
return array_slice( $recent_posts, $r['start'], $r['num'], true );
return array();
}

index.phpに追加するコード

index.phpには以下のように追記します。
追記部分は挿入したい箇所になります。

<?php
$network_posts = get_recentposts_from_network( 'perblog=3' );
if( $network_posts ) :
foreach( (array) $network_posts as $key => $post ) {
switch_to_blog( $post->blog_id );
setup_postdata( $post );
?>
<li><a href="<?php the_permalink() ;?>"><?php the_title(); ?></a></li>
<?php
restore_current_blog();
}
wp_reset_query();
endif;
?>

このコードを使うことによって得られるメリット

このコードを使うとマルチサイトで運用している他のサイトの更新情報が取得・表示できるのでポータルサイトでの運用のようなイメージでもサイトの作成に役立ちます。

パラメーターの微調整等は元記事でご確認ください。

元記事はこちらになります。
こういうコードが書けるって素敵ですね!
WordPressマルチサイトネットワークから新着記事を取得するコード(修正版)


« »

ABOUT THE AUTHOR

こしもあんず
こしもあんず

Wordpressをカスタマイズすることが好きなギーク女子です。
好きなエディタはSublimetext2です。
Google+やってるので、よろしくです。
デザインは好きですが、PHPはあまり得意ではないのでその辺ご容赦くださいね。


Twitterはこちら
https://twitter.com/wordpresscusto1

ad