サポート » マルチサイト » 子サイトのサムネイルなどを新着順に並び替える方法

  • 解決済 Kite

    (@ixkaito)


    3つ以上の子サイトがあって、親サイトにはそれぞれの子サイトへのリンクとして、サムネイルがリスト形式で並べてあるとします。

    この子サイトのサムネイルをそれぞれの新着記事の日付順に並べ替えるにはどうすればよいでしょうか。

    なお、記事の日付順一覧ではなく、あくまで子サイトサムネイルのソートなので、例えば、記事順で
    1.ブログB / 2.ブログC / 3.ブログC / 4.ブログB / 5.ブログA
    というケースだとしても、サムネイルは
    1.ブログB / 2.ブログC / 3.ブログA
    になってほしいです。

    現在順番を固定にした状態のソースを下記のようにしております。
    ご教授いただけますでしょうか。よろしくお願い致します。

    <?php
    switch_to_blog(2);
    query_posts('showposts=1');
    if(have_posts()):while(have_posts()):the_post();
    ?>
    	<li class="blogA">
    	<h2>ブログA</h2>
    	<p><?php the_time('Y.n.j') ;?> UPDATE <em>NEW</em></p>
    	<a href="<?php bloginfo('url'); ?>"><img src="<?php echo get_template_directory_uri(); ?>/images/thumA.jpg" alt="ブログAのサムネイル" /></a>
    	</li>
    <?php
    endwhile; endif;
    restore_current_blog();
    
    switch_to_blog(3);
    query_posts('showposts=1');
    if(have_posts()):while(have_posts()):the_post();
    ?>
    	<li class="blogB">
    	<h2>ブログB</h2>
    	<p><?php the_time('Y.n.j') ;?> UPDATE <em>NEW</em></p>
    	<a href="<?php bloginfo('url'); ?>"><img src="<?php echo get_template_directory_uri(); ?>/images/thumB.jpg" alt="ブログBのサムネイル" /></a>
    	</li>
    <?php
    endwhile; endif;
    restore_current_blog();
    
    switch_to_blog(4);
    query_posts('showposts=1');
    if(have_posts()):while(have_posts()):the_post();
    ?>
    	<li class="blogC">
    	<h2>ブログC</h2>
    	<p><?php the_time('Y.n.j') ;?> UPDATE <em>NEW</em></p>
    	<a href="<?php bloginfo('url'); ?>"><img src="<?php echo get_template_directory_uri(); ?>/images/thumC.jpg" alt="ブログCのサムネイル" /></a>
    	</li>
    <?php
    endwhile; endif;
    restore_current_blog();
    ?>

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • なんとか自己解決できました。
    他の方の参考になるかもしれませんので、サンプルソースを載せておきます。

    <?php
    	$blogs = array(2,3,4);
    	$name = array('blogA','blogB','blogC');
    	$namae = array('ブログA','ブログB','ブログC');
    	$thum = array('thumA','thumB','thumC');
    	foreach($blogs as $id){
    		switch_to_blog($id);
    		$url[] = get_bloginfo('url');
    		query_posts('showposts=1');
    		if(have_posts()):while(have_posts()):the_post();
    			$time[] = get_the_time('Y.n.j');
    		endwhile; endif;
    		restore_current_blog();
    	}
    
    	arsort($time);
    	foreach($time as $key => $value){
    ?>
    		<li class="<?= $name[$key] ?>">
    		<h2><?= $namae[$key] ?></h2>
    		<p><?= $time[$key] ?> UPDATE <em>NEW</em></p>
    		<a href="<?= $url[$key] ?>"><img src="<?= get_template_directory_uri(); ?>/images/<?= $thum[$key] ?>.jpg" alt="<?= $namae[$key] ?>のサムネイル" /></a>
    		</li>
    <?php
    	}

    上記で問題なく動作しました。
    もし変なところやもっとスマートなやり方があれば、お知らせいただけますと幸いです。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「子サイトのサムネイルなどを新着順に並び替える方法」には新たに返信することはできません。