How to loop post under category in wordpress

category-list

To loop posts under categories, you should know something.

  • get_categories($args): Arguments to retrieve categories and we want to return array List of category objects that   ‘parent’ => 0 .
 $categories = get_categories(array(
             ‘parent’ => 0,
‘order’=>’DESC’,
             ));
  • foreach ( $categoriesas$category ): loop category , show category name and add herf for category link <?php echo get_category_link($category->term_id )?>
    count total post <?php echo$category->count?> under parent category
  • query post under ‘cat’=>$category->cat_ID then loop post  foreach( $the_query as $post )
    and set post per page or ‘numberposts’=>4

follow Code as below:

<main class="container">
    <section class="row catparent-list my-4">
        <div class="col-lg-8 col-md-8 h-100">
            <?php
            global $post;
            $categories = get_categories(array(
                'parent' => 0,
                'order' => 'DESC',
            ));
            foreach ($categories as $category) :
            ?>
                <div class="mb-3 border-bottom py-3 ">
                    <a class="border bg-light d-block p-3 rounded mb-3 text-uppercase" href="<?php echo get_category_link($category->term_id) ?>">
                        <?php echo $category->name ?> <span class="badge rounded-pill bg-primary" title="total post"><?php echo $category->count ?>
                            <i class="fa fa-sticky-note" aria-hidden="true"></i></span>
                    </a>
                    <p><?php echo $category->description ?></p>
                    <?php
                    $args = array(
                        'numberposts' => 4,
                        'offset' => 0,
                        'cat' => $category->cat_ID
                    );
                    $the_query = get_posts($args);
                    if ($the_query) : ?>
                        <div class="row">
                            <?php
                            foreach ($the_query as $post) :


                            ?>
                                <div class="col-lg-6 col-md-6 mb-3">
                                    <a href="<?php the_permalink(); ?>">
                                        <div class="card h-100">


                                            <?php getthumbnail(); ?>
                                            <div class="card-body">
                                                <div class="card-title">
                                                    <?php the_title(); ?>
                                                </div>
                                                <div class=" card-text card-description hidden-phone">
                                                    <?php the_excerpt(); ?>
                                                </div>
                                            </div>
                                            <div class="card-footer ">
                                                <div class="entry-date"> <?php echo time_ago(); ?></div>
                                            </div>
                                        </div>
                                    </a>
                                </div>
                            <?php endforeach; ?>
                        </div>
                    <?php
                    endif;
                    ?>
                </div>
            <?php endforeach; ?>
            <!--        end list category -->
        </div>
        <div class="col-lg-4 col-md-4 h-100">
            <?php get_sidebar(); ?>
        </div>
</main><!-- #main -->

Don't forget to Share this Article !

You may like this