質問: get_posts('numberposts=3'); foreach($lastposts as $post) : ?> <a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a></h3> <?php endforeach; restore_current_blog(); }
回答: ricks answerはきっと役に立ちますが、私のアプローチを共有したいと思いました。それはあなたのコードの採用または拡張です。まず、あなたのネットワークで選ばれたブログのリストを入手してください。$args = array('site__in' => array(2, 3, 6)) $sitesobj = get_sites($args); $sites = object_to_array($sitesobj); get_sites()の引数に'site__not_in'を使ってサイトを除外することもできます。$sitesobjオブジェクトを配列に変換します。$sites = object_to_array($sitesobj); object_to_array($object) { if (!is_object($object) && !is_array($object)) { return $object; } return array_map('object_to_array', (array) $object) ; } 次に、表示する投稿の総数を制御するカウンタを初期化し、選択した各ブログに切り替えてカスタム引数でループを開始します。$postcounter = 0; $maxposts = 5; // total number of posts to show foreach ($sites as $site) { switch_to_blog($site['blog_id']); $args = array( 'post_type' => 'post', // or custom post type 'posts_per_page' => 2, // number of posts per blog 'order' => 'desc', 'orderby' => 'date' // you could also use 'rand' here ); $loop = new wp_query($args); if ($loop->have_posts()) : while ($loop->have_posts() && $counter < $maxposts) : $loop->the_post(); // your output endwhile; endif; restore_current_blog(); } それが役立つことを願っています:)