とりあえずカテゴリーの数だけ一覧表示する
「get_categories」でカテゴリー情報を取得することができます。
あとはその数だけループさせればカテゴリー別の一覧が表示できますね。
<?php$categories = get_categories();foreach($categories as $category) :?><h3><?php echo $category->cat_name; ?></h3><ul><?phpquery_posts('showposts=5&cat='.$category->cat_ID);if (have_posts()) : while (have_posts()) : the_post();?><li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li><?php endwhile; endif; ?></ul><?php endforeach; ?>カテゴリーのIDと順番を指定して表示する
コーポレートサイトを作成していると、一覧の順番やカテゴリーを指定して出力したいことがあると思います。
たとえば10個カテゴリーがあるうちの3つだけ取得したい。さらに順番は4→6→5の並びにするとします。
<?php$categorys = array(4,6,5);for ($i=0; $i<count($categorys); $i++) :?><h3><?php echo esc_html(get_catname($categorys[$i])); ?></h3><ul><?phpquery_posts('showposts=5&cat='.$categorys[$i]);if (have_posts()) : while (have_posts()) : the_post();?><li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li><?php endwhile; ?></ul><?php else: ?><li><?php echo esc_html(get_catname($categorys[$i]))."はまだありません。"; ?></li></ul><?php endif; ?><?php endfor; ?>2行目の「$categorys」で出力するカテゴリーのID指定をしています。
この配列の数だけループさせ、直接カテゴリーIDで表示するカテゴリーを指定してやればできますね。
foreachでは昇順になってしまうためforにしました。(何か方法はあるはず?)
カスタム分類を表示する場合
IDからカスタム分類の情報を取得する場合は「get_term」を使用します。
たとえば「faq」というカスタム分類の場合は次の用になります。
<?php$categorys = array(9,10);for ($i=0; $i<count($categorys); $i++) :$faq_term = get_term($categorys[$i], 'faq');?><h3><?php echo esc_html($faq_term->name); ?></h3><ul><?phpquery_posts('showposts=5&faq='.$faq_term->slug);if (have_posts()) : while (have_posts()) : the_post();?><li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li><?php endwhile; ?></ul><?php else: ?><li><?php echo esc_html($faq_term->name)."はまだありません。"; ?></li></ul><?php endif; ?><?php endfor; ?>
