WordPressで各カテゴリの最新の記事をとって、それを最新順に並べ替えて表示
もっと賢い方法がある気がするけど、とりあえず以下の感じで対応。
<?php
$count = 0;
function getCategoryLatestPosts($ids){
//$bloggerCatIDs = '46,50,52,54,13,45,14,11,12';
$idsArr = split(",",$ids);
$posts = array();
//カテゴリ別に最新のpostを取得
foreach($idsArr as $catId){
$p =query_posts("showposts=1&cat={$catId}");
array_push($posts,$p[0]);
}
//配列の空要素を削除
function delNull($var){
if ($var == '') return FALSE;
return TRUE;
}
$posts = array_filter($posts, 'delNull');
//IDで最新順に並べ替え
function compareID( $a , $b){
$cmp = strcmp($b->ID, $a->ID );
return $cmp;
}</p>
<pre><code> usort( $posts , &quot;compareID&quot; );
return $posts;
}
?&gt;
&lt;?php
global $bloggerCatIDs;
foreach(getCategoryLatestPosts($bloggerCatIDs) as $post):
setup_postdata($post);
?&gt;
&lt;?php
$class = ($count%2==0)? 'alpha' : 'omega';
$count++;
?&gt;
&lt;div class=&quot;item grid_2 &lt;?=$class?&gt;&quot;&gt;
&lt;div class=&quot;img&quot;&gt;&lt;a href=&quot;&lt;?php the_permalink();?&gt;&quot;&gt;&lt;?php userphoto_the_author_thumbnail();?&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;text&quot;&gt;&lt;h4&gt;&lt;a href=&quot;&lt;?php the_permalink();?&gt;&quot;&gt;&lt;?php the_substr_title()?&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p class=&quot;subinfo&quot;&gt;&lt;span class=&quot;flag&quot;&gt;&lt;?php the_flag();?&gt;&lt;/span&gt;&lt;?php the_author();?&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;?php
if($count%2==0) print '&lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;';
?&gt;
&lt;?php
//wp_reset_query();
endforeach;
?&gt;