WordPress ME2.1.2で「list_cats」や「wp_list_cats」の値をPHPで使用できる値として取り出そうとしたが、引数recurseを指定しても無視されてしまうようなので、ほかの方法がないかちょっと調べてみました。
やりたかったのは、特定のカテゴリーのアーカイブページでそのカテゴリー(例えば「お知らせ」)に属する子カテゴリーをリスト化し、さらに各子カテゴリーに属する記事もそれぞれリスト化したページを作ろうとしてます。

カテゴリーIDのリストをPHPで使用できる値として取り出す。
get_category_children(親カテゴリーID, 番号の前に付ける文字, 番号の後ろに付ける文字)

記述例 :
echo get_category_children(0, ”, ‘,’);
出力例 :
1,3,4,5,

カテゴリーIDからカテゴリー名をPHPで使用できる値として取り出す。
get_the_category_by_ID(カテゴリーID)

記述例 :
echo get_the_category_by_ID(1);
出力例 :
お知らせ

以上のテンプレートタグを使って、以下のようにしてみた。

<?php
$arg = explode(”,”, get_category_children(1, ”, ‘,’));
array_pop($arg);
foreach($arg as $num) {
echo ‘<h2>’ . get_the_category_by_ID($num) . ‘</h2>’;
query_posts(”cat=$num&posts_per_page=-1″);
if(have_posts()) {
while(have_posts()) : the_post();
echo ‘<a href=”‘ . the_permalink() . ‘”>’ . the_title() . ‘</a><br />’;
endwhile;
} else {
echo ‘<p>記事はありません</p>’;
}
}
?>

関連記事