3

So I have this issue regarding the loop within wordpress.
I have the following structure in my site:

  • Parent Category 1
    • Child category 1
    • Child category 2
  • Parent Category 2
    • Child category 1
    • Child category 2
      • Post Cat2.1
      • Post Cat2.2
    • Post 1
    • Post 2

In this case "Parent Category 2" has children category and posts. What I need to display in a "Parent Category Page" are the children categories and its posts without the children category posts.
I've looked everywhere but it seems I've been searching wrong, any help will be very appreciated

jashez
  • 33
  • 5

1 Answers1

0

I think this can help:

$cat_id = get_query_var('cat');

if( ! empty( $cat_id ) ) {
$category = get_category( $cat_id, ARRAY_A );

if( ! empty( $category ) ) {
    // parent category
    if( $category['parent'] === '0' ) {

        // get child IDs
        $terms = get_term_children( $cat_id, 'category' );

        foreach( $terms as $term_id ) {
            $child_category = get_term( $term_id, 'category' );

            // if you need the category
            $category_name = $child_category->name;


            /**
             * Sample data in your child category object: 
             * 
             * object(stdClass)[365]
                      public 'term_id' => string '14' (length=2)
                      public 'name' => string 'Child 1' (length=7)
                      public 'slug' => string 'child-1' (length=7)
                      public 'term_group' => string '0' (length=1)
                      public 'term_taxonomy_id' => string '14' (length=2)
                      public 'taxonomy' => string 'category' (length=8)
                      public 'description' => string '' (length=0)
                      public 'parent' => string '12' (length=2)
                      public 'count' => string '5' (length=1)
                      public 'object_id' => string '33' (length=2)
             * 
             * 
             */

            // do whatever you like with the categories now...
        }

    } else { // in child category
        // do the regular loop here, if ( have_posts() ) ...
    }
 }
}

also it's posted Here

hope it can help you :)