サポート » マルチサイト » 子サイトの新着一覧が多く表示される

  • 解決済 hypnotherapy

    (@hypnotherapy)


    お世話になります。

    以前、親サイトで子サイトの投稿を更新日時順に表示したいで子サイトの新着記事を投稿日時順で親サイトに表示することは成功しました。

    ただ、先日子サイトに記事を3つずつ流したところ、全部の記事一覧が出てきてしまいまして…
    (子サイトは全部で31、全てに同じテスト記事が3つはいった状態なので93記事表示されています)
    実際に親サイトに表示するのは15件にしたいと思っています。

    現状のソースは

    <ul class="block-five">
    <?php
    $current_blog_id = get_current_blog_id();
    $site_ids = get_sites( array ( 'fields' => 'ids' ) );
    $site_ids = array_diff( $site_ids, array( $current_blog_id ) );
    
    $my_posts = get_posts_by_sites( $site_ids, array(
    	'post_type' => 'post',
    	'posts_per_page' => 10,
    ) );
    foreach ( $my_posts as $my_post ) {
    	switch_to_blog( $my_post->blog_id );
    	$post = get_post( $my_post->ID );
    	setup_postdata( $post );
     ?>
    <li class="item">
    	<div class="gallery-item">
    	<div class="item-img"><a href="<?php the_permalink(); ?>" target="_blank">
    	<?php
    		if ( has_post_thumbnail() ) the_post_thumbnail( 'medium' );
    		else echo '<img src="'.get_stylesheet_directory_uri().'/images/noimage.png" />'; ?></a></div>
    	<div class="item-title"><a href="<?php the_permalink(); ?>" target="_blank"><?php the_title(); ?></a></div>
    	<div class="item-date"><?php the_time(__('Y-m-d')); ?> | <a href="<?php echo home_url(); ?>" target="_blank"><?php bloginfo(name); ?></a></div>
    </li>
    
    <?php
    	restore_current_blog();
    }
    wp_reset_postdata();
    ?>
    </ul>

    です。
    以上、よろしくお願いします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • あっ!get_posts_by_sites 関数のコードが間違えていました。
    get_posts_by_sites 関数(45行目)を下記のように修正してください。

    if ( $paged > 1 ) {

    if ( $posts_per_page >= 0 ) {

    失礼しました。

    実際に親サイトに表示するのは15件にしたいと思っています。

    15 件でしたら、posts_per_page は 15 ですね。

    $my_posts = get_posts_by_sites( $site_ids, array(
    	'post_type' => 'post',
    	'posts_per_page' => 10, // ← ここを 15 に変更
    ) );

    前回に引き続きありがとうございましたー。
    お陰で無事思い通りの表示になりました(*_ _)

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • このトピックに返信するにはログインが必要です。