Skip to content

Instantly share code, notes, and snippets.

@diggeddy
Last active October 12, 2022 15:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save diggeddy/c2bdc6190a314238d15bad6979a5ac34 to your computer and use it in GitHub Desktop.
Save diggeddy/c2bdc6190a314238d15bad6979a5ac34 to your computer and use it in GitHub Desktop.
Nested Category archive
<?php
/**
* The template for displaying nested category pages.
*
* @package GeneratePress
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
get_header(); ?>
<div <?php generate_do_attr( 'content' ); ?>>
<main <?php generate_do_attr( 'main' ); ?>>
<?php
/**
* generate_before_main_content hook.
*
* @since 0.1
*/
do_action( 'generate_before_main_content' );
if ( generate_has_default_loop() ) {
if ( have_posts() ) :
/**
* generate_archive_title hook.
*
* @since 0.1
*
* @hooked generate_archive_title - 10
*/
do_action( 'generate_archive_title' );
/**
* generate_before_loop hook.
*
* @since 3.1.0
*/
do_action( 'generate_before_loop', 'archive' );
/** Foreach loop if category is parent */
$current_cat = get_queried_object();
$subcategories = get_categories(
array( 'parent' => $current_cat->term_id )
);
if(!empty($subcategories)){
foreach($subcategories as $cat){
echo '<div class="subcategory-header">'.$cat->name.'</div>';
$cat_posts = get_posts( array(
'posts_per_page' => -1,
'category' => $cat->term_id
) );
if ( $cat_posts ) {
foreach ( $cat_posts as $post ) :
generate_do_template_part( 'archive' );
endforeach;
}
}
} else {
/** if not a parent the return default loop. */
while ( have_posts() ) :
the_post();
generate_do_template_part( 'archive' );
endwhile;
}
/**
* generate_after_loop hook.
*
* @since 2.3
*/
do_action( 'generate_after_loop', 'archive' );
else :
generate_do_template_part( 'none' );
endif;
}
/**
* generate_after_main_content hook.
*
* @since 0.1
*/
do_action( 'generate_after_main_content' );
?>
</main>
</div>
<?php
/**
* generate_after_primary_content_area hook.
*
* @since 2.0
*/
do_action( 'generate_after_primary_content_area' );
generate_construct_sidebars();
get_footer();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment