WORDPRESS: Display list of Sub-Categories and the

2019-07-18 20:52发布

问题:

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:

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!

回答1:

I think here's what you need.

$categories=  get_categories('child_of=10');  for each  $categories as $category {
      //Display the sub category information using $category values like $category->cat_name
      $posts_array = get_posts( 'category=$category->cat_ID' );
      for each $posts_array as $post {
           //Display the posts information using $post values like $post->post_title
      }  }

You just need to format them. Hope this would be of help.



回答2:

@Free Lancer, Thanks again.. after working with your code for a bit, I was able to make it work. Some of the changes included:

'for each' changed to foreach

foreach statements wrapped in ()

I also changed the 'category=$category->cat_ID' to 'cat='.$category->term_id

lastly, I changed the foreach loop on the posts and added setup_postdata( $post ); to that loop.

For all that need a snippet that will display a list of subcategories, within a specified category, AND show all the posts within each of those subcats.. here it is:

$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>';
    }

Thanks again for all the help and pointing me in the right direction !!