Display list of Sub-Categories and the posts they contain, within one main Category

I’ve found tons of code and plugins to do various things; from show posts for specific cats, subcats of a cat, etc.. BUT, I cannot for the life of me find, nor do I know the WP API well enough to do what I need with it..

Here is what I’m trying to accomplish:

Read More

Display a UL of all subcats within Cat31, and the posts for each of those subcats:

  • SubCat1

    • Post 1
    • Post 2
  • SubCat2

    • Post 1
    • Post 2
  • SubCat3

    • Post 1
    • Post 2

It’s pretty straight forward, but all the loops I have tried fail either at the subcat loop or the post loop (one or the other works, I cannot get them both to work..)

So, unless I can find a plugin to do this (I’d prefer to code this into a template file!) then I need to figure out how to:

Loop Subcats within Cat31 while looping subcasts, loop posts for each subcat

Any help is GREATLY appreciated!

Related posts

Leave a Reply

2 comments

  1. Question was answered on another site.. thank you!
    BTW, the code that accomplished what I needed was:

    $categories =  get_categories('child_of=31');  
    foreach  ($categories as $category) {
        //Display the sub category information using $category values like $category->cat_name
        echo '<h2>'.$category->name.'</h2>';
        echo '<ul>';
    
        foreach (get_posts('cat='.$category->term_id) as $post) {
            setup_postdata( $post );
            echo '<li><a href="'.get_permalink($post->ID).'">'.get_the_title().'</a></li>';   
        }  
        echo '</ul>';
    }
    
  2. Here is the final code used to create a podcast page out of WP Posts. In case anyone could benefit from it.

    <?php     
        $categories =  get_categories('child_of=31');  
        foreach  ($categories as $category) {
            //Display the sub category information using $category values like $category->cat_name
    
            // display category image, if one exists - place image in /images/podcast_images/ dir  
            $cat_img = '';
            if(get_bloginfo("url") .'/wp-content/images/podcast_images/' . $category->slug . '.jpg' != ' ') {$cat_img = '<img class="podcast_category_image" src="'.get_bloginfo("url") .'/wp-content/images/podcast_images/' . $category->slug . '.jpg" />';} 
    
           echo '<h2 class="podcast_h2">'.$cat_img.$category->name.'</h2>'; 
            // start a list for the podcasts
            echo '<ul class="podcast_series">';
            foreach (get_posts('orderby=post_date&category='.$category->term_id) as $post) {
                setup_postdata( $post );
                // format date
                $my_date = mysql2date('F j<sup>S</sup>, Y', $post->post_date);
    
                // load the custom fields for this post, if they have content
                if(get_post_meta($post->ID, 'Speaker', true)){ 
                    $speaker_name = '<div class="speaker"><strong>Speaker: </strong>'. get_post_meta($post->ID, "Speaker", true).'</div>';
                } else {
                    $speaker_name = '';
                } 
                if(get_post_meta($post->ID, 'Scripture', true)){ 
                    $scripture = '<div class="scripture"><strong>Scripture: </strong>'. get_post_meta($post->ID, "Scripture", true).'</div>';
                } else {
                    $scripture = '';
                } 
                // echo out the results into a list item
                echo '<li><a href="'.get_permalink($post->ID).'">'.get_the_title($post->ID).'</a>'.  $speaker_name . $scripture.'<div class="podcast_date"> Recorded On: '. $my_date .'</div></li>';   
            }
            // close the list
            echo '</ul>';
        } ?>
    

    This code will loop through all posts in Category 31 (in this example) and display the sub-categories and their posts. I first created a category for PODCASTS (which is cat. 31) and sub categories within it, for podcast series.

    The result is a list of subcats within our main podcast cat.. and the posts (podcasts) for each of those subcats listed below it:

    Sub cat1
    podcast 1
    podcast 2
    podcast 3

    Sub cat2
    podcast 1
    podcast 2
    podcast 3

    Thanks to all for the help!