我想你可以用wp_list_categories()
使用walker
向每个项目添加其他无序列表。
The code:
$cat_id = get_query_var( \'cat\' );
$subcats = get_categories( \'child_of=\' . $cat_id ); // child categories
class Cat_Walker extends Walker_Category {
function end_el( &$output, $page, $depth = 0, $args = array() ) {
$posts = get_posts( \'cat=\' . $page->term_id );
if ( sizeof( $posts ) > 0 ) {
$output .= \'<ul>\';
foreach ( $posts as $post ) {
$output .= sprintf( \'<li><a href="%1$s">%2$s</a></li>\', get_permalink( $post->ID ), $post->post_title );
}
$output .= \'</ul>\';
}
$output .= \'</li>\';
}
}
foreach ( $subcats as $subcat ) {
$subsubcats = get_categories( \'child_of=\' . $subcat->term_id ); // sub child categories
foreach ( $subsubcats as $subsubcat ) {
$args = array(
\'title_li\' => \'\',
\'show_option_none\' => \'\',
\'taxonomy\' => \'category\',
\'child_of\' => $subsubcat->term_id,
\'walker\' => new Cat_Walker( )
);
wp_list_categories( $args );
}
}