I'm customizing my theme's category template to display the current category's child categories instead of the posts from that category.

The category template links to another template file (`content-grid.php`) which generates the dynamic post/category content.

The only way I can get it to work is by combining all the code together on the category template.

This is the original category template:

    <?php
    /**
     * The template for displaying category archive pages.
     *
     * @link https://codex.wordpress.org/Template_Hierarchy
     *
     * @package Codilight_Lite
     */
    
    get_header(); ?>
    	<div id="content" class="site-content container <?php echo codilight_lite_sidebar_position(); ?>">
    		<div class="content-inside">
    			<div id="primary" class="content-area">
    				<main id="main" class="site-main" role="main">
    
    				<?php
    				if ( have_posts() ) : $count = 0; ?>
    
    					<header class="page-header">
    						<?php
    							the_archive_title( '<h1 class="page-title">', '</h1>' );
    							the_archive_description( '<div class="taxonomy-description">', '</div>' );
    						?>
    					</header><!-- .page-header -->
    
    					<?php
    					$layout_archive_posts = get_theme_mod( 'layout_archive_posts', 'grid' );
    					if ( $layout_archive_posts == 'grid' ) {
    						echo '<div class="block1 block1_grid">';
    						echo '<div class="row">';
    							while ( have_posts() ) : the_post();
    							$count++;
    								get_template_part( 'template-parts/content-grid' );
    							if ( $count % 2 == 0 ) {
    								echo '</div>';
    								echo '<div class="row">';
    							}
    							endwhile;
    						echo '</div>';
    						echo '</div>';
    						codilight_lite_custom_paginate();
    
    					} else {
    						echo '<div class="block1 block1_list">';
    							while ( have_posts() ) : the_post();
    							get_template_part( 'template-parts/content-list' );
    							endwhile;
    						codilight_lite_custom_paginate();
    						echo '</div>';
    					}
    					?>
    
    				<?php else : ?>
    
    					<?php get_template_part( 'template-parts/content', 'none' ); ?>
    
    				<?php endif; ?>
    
    				</main><!-- #main -->
    			</div><!-- #primary -->
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

...and this is the `content-grid.php` template file:

    <?php
    /**
     * Template part for displaying posts with grid style.
     *
     * @link https://codex.wordpress.org/Template_Hierarchy
     *
     * @package Codilight_Lite
     */
    
    ?>

    <article id="post-<?php the_ID(); ?>" <?php post_class( 'col-md-6 col-sm-12' ); ?>>
        <div class="entry-thumb">
            <a href="<?php echo esc_url( get_permalink() ); ?>" title="<?php the_title(); ?>">
    			<?php
    			if ( has_post_thumbnail( ) ) {
    				the_post_thumbnail( 'codilight_lite_block_2_medium' );
    			} else {
    				echo '<img alt="'. esc_html( get_the_title() ) .'" src="'. esc_url( get_template_directory_uri() . '/assets/images/blank325_170.png' ) .'">';
    			}
    			?>
    		</a>
            <?php
            $category = get_the_category();
            if($category[0]){
                echo '<a class="entry-category" href="'.get_category_link($category[0]->term_id ).'">'.$category[0]->cat_name.'</a>';
            }
            ?>
        </div>
        <div class="entry-detail">
            <header class="entry-header">
        		<?php the_title( sprintf( '<h2 class="entry-title"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></h2>' ); ?>
        		<?php if ( 'post' === get_post_type() ) codilight_lite_meta_1();?>
        	</header><!-- .entry-header -->
    
        	<div class="entry-excerpt">
        		<?php echo codilight_lite_excerpt(120); ?>
        	</div><!-- .entry-content -->
        </div>
    </article><!-- #post-## -->

...and now for the customized category template file:

    <?php
    /**
     * Category Template: Custom
     */
    
    get_header(); ?>
    	<div id="content" class="site-content container <?php echo codilight_lite_sidebar_position(); ?>">
    		<div class="content-inside">
    			<div id="primary" class="content-area">
    				<main id="main" class="site-main" role="main">
    <?php 
    		$cat = get_category( get_query_var( 'cat' ) );
    		$cat_id = $cat->cat_ID;
    		$child_categories=get_categories(
    		array( 
            'parent' => $cat_id,
            // Uncomment the below line if you want empty category to appear on the list. 
            // 'hide_empty'   => 0
        )
    ); 
    		if (!empty($child_categories)) : $count = 0; ?>
    					
    					<header class="page-header">
    						<?php
    							the_archive_title( '<h1 class="page-title">', '</h1>' );
    							the_archive_description( '<div class="taxonomy-description">', '</div>' );
    						?>
    					</header><!-- .page-header -->
    
    					<?php
    						echo '<div class="block1 block1_grid">';
    						echo '<div class="row">';
    					
    					foreach ( $child_categories as $child ){ $count++;
    					get_template_part( 'template-parts/content-grid' );
    								
    					if ( $count % 2 == 0 ) {
    								echo '</div>';
    								echo '<div class="row">';
    					}
    					}
    						echo '</div>';
    						echo '</div>';
    					?>
    
    				<?php else : ?>
    
    					<?php get_template_part( 'template-parts/content', 'none' ); ?>
    
    				<?php endif; ?>
    
    				</main><!-- #main -->
    			</div><!-- #primary -->
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

...and the customized `content-grid.php` template file:

    <?php
    /**
     * Template part for displaying posts with grid style.
     *
     * @link https://codex.wordpress.org/Template_Hierarchy
     *
     * @package Codilight_Lite
     */
    
    ?>
    
    <article id="" class="col-md-6 col-sm-12">
        
    	<div class="entry-thumb">
    	
    		<a href="<?php echo get_category_link( $child->cat_ID ); ?>" title="<?php echo $child ->cat_name;?>">
    			
    	<?php $image_url = z_taxonomy_image_url($child->term_id); ?>
    	
    		<?php if (!empty($image_url)) : ?>
    			<img alt="" src="<?php if (function_exists('z_taxonomy_image_url')) echo z_taxonomy_image_url($child->term_id);?>" />
    	
    		<?php else: ?>
    			<img alt="" src="<?php echo esc_url( get_template_directory_uri() . '/assets/images/blank325_170.png' ) ?>" />
    
    	<?php endif; ?>
    	
    		</a>
    		
    	</div>
    	
    	<div class="entry-detail">
            
    		<header class="entry-header">
        		
    			<h2 class="entry-title"><a href="<?php echo get_category_link( $child->cat_ID ); ?> " rel="bookmark"><?php echo $child ->cat_name;?></a>
    			</h2>
    			
        	</header><!-- .entry-header -->
    
        	<div class="entry-excerpt">
    		
        		<?php echo $child ->description;?>
        	
    		</div><!-- .entry-content -->
        
    	</div>
    	
    </article><!-- #post-## -->

...and lastly this is how I put all the code together in the category template file which works:

    <?php
    /**
     * Category Template: Custom
     */
    
    get_header(); ?>
    	<div id="content" class="site-content container <?php echo codilight_lite_sidebar_position(); ?>">
    		<div class="content-inside">
    			<div id="primary" class="content-area">
    				<main id="main" class="site-main" role="main">
    <?php 
    		$cat = get_category( get_query_var( 'cat' ) );
    		$cat_id = $cat->cat_ID;
    		$child_categories=get_categories(
    		array( 
            'parent' => $cat_id,
            // Uncomment the below line if you want empty category to appear on the list. 
            // 'hide_empty'   => 0
        )
    ); 
    		if (!empty($child_categories)) : $count = 0; ?>
    					
    					<header class="page-header">
    						<?php
    							the_archive_title( '<h1 class="page-title">', '</h1>' );
    							the_archive_description( '<div class="taxonomy-description">', '</div>' );
    						?>
    					</header><!-- .page-header -->
    
    					<?php
    						echo '<div class="block1 block1_grid">';
    						echo '<div class="row">';
    					foreach ( $child_categories as $child ) : $count++; ?>
    								<article id="" class="col-md-6 col-sm-12">
        
    	<div class="entry-thumb">
    		<a href="<?php echo get_category_link( $child->cat_ID ); ?>" title="<?php echo $child ->cat_name;?>">
    			
        <?php $image_url = z_taxonomy_image_url($child->term_id); ?>
    <?php if (!empty($image_url)) : ?>
        <img alt="" src="<?php if (function_exists('z_taxonomy_image_url')) echo z_taxonomy_image_url($child->term_id);?>" />
    	
    <?php else: ?>
        <img alt="" src="<?php echo esc_url( get_template_directory_uri() . '/assets/images/blank325_170.png' ) ?>" />
    
    	<?php endif; ?>
    	
    		</a>
        </div>
    	
    	<div class="entry-detail">
            <header class="entry-header">
        		<h2 class="entry-title"><a href="<?php echo get_category_link( $child->cat_ID ); ?> " rel="bookmark"><?php echo $child ->cat_name;?></a></h2>
        	</header><!-- .entry-header -->
    
        	<div class="entry-excerpt">
        		<?php echo $child ->description;?>
        	</div><!-- .entry-content -->
        </div>
    </article><!-- #post-## -->
    
    <?php ?>
    								
    				<?php	if ( $count % 2 == 0 ) {
    								echo '</div>';
    								echo '<div class="row">';
    					}
    					endforeach;
    						echo '</div>';
    						echo '</div>';
    					?>
    
    				<?php else : ?>
    
    					<?php get_template_part( 'template-parts/content', 'none' ); ?>
    
    				<?php endif; ?>
    
    				</main><!-- #main -->
    			</div><!-- #primary -->
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>