Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save mrfoxtalbot/9bd39a4bd9af6c7af18455ca2ef19b19 to your computer and use it in GitHub Desktop.
Save mrfoxtalbot/9bd39a4bd9af6c7af18455ca2ef19b19 to your computer and use it in GitHub Desktop.
Archive of Hierarchical terms
// parent theme: Benevolent
// author: igmoweb
<?php
get_header();
$term = get_queried_object();
$term_children = get_term_children( $term->term_id, $term->taxonomy );
$has_children = ! is_wp_error( $term_children ) && ! empty( $term_children );
$term_title = single_term_title();
$term_description = term_description();
$image_size = 'medium'; // Or thumbnail, medium, large, full
?>
<div id="primary" class="content-area mrfx-archive-test">
<main id="main" class="site-main" role="main">
<?php
if ( have_posts() ) : ?>
<header class="page-header" style="margin-bottom:200px">
<?php
the_archive_title( '<h1 class="page-title">', '</h1>' );
?>
<?php if ( ! $has_children ): ?>
<div class="term-description">
<?php
// wp_kses_post Removes forbidden HTML
// wpautop wraps paragraphs inside <p> tags
echo wp_kses_post( wpautop( $term_description ) );
?>
</div>
<div
class="term-image"
>
<?php z_taxonomy_image( $term->term_id, $image_size );; ?>
</div>
<?php else: ?>
<h2>Subcategorías:</h2>
<?php foreach ( $term_children as $child_term_id ): ?>
<?php $child_term = get_term( $child_term_id ); ?>
<ul class="children-terms" style="list-style: none; margin-left: 0; padding-left: 0">
<li style="display: flex; gap: 3rem">
<div class="term-image">
<?php z_taxonomy_image( $child_term->term_id, 'thumbnail' ); ?>
</div>
<div style="flex-shrink: 2">
<h3 style="margin-top:0">
<a href="<?php echo esc_url( get_term_link( $child_term ) ); ?>">
<?php echo $child_term->name ?>
</a>
</h3>
<div>
<?php
// wp_kses_post Removes forbidden HTML
// wpautop wraps paragraphs inside <p> tags
echo wp_kses_post( wpautop( $term_description ) );
?>
</div>
</div>
</li>
</ul>
<?php endforeach; ?>
<?php endif; ?>
</header><!-- .page-header -->
<?php
/* Start the Loop */
while ( have_posts() ) : the_post();
/*
* Include the Post-Format-specific template for the content.
* If you want to override this in a child theme, then include a file
* called content-___.php (where ___ is the Post Format name) and that will be used instead.
*/
get_template_part( 'template-parts/content', get_post_format() );
endwhile;
the_posts_pagination( [
'prev_text' => '',
'next_text' => '',
'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'benevolent' ) . ' </span>',
] );
else :
get_template_part( 'template-parts/content', 'none' );
endif; ?>
</main><!-- #main -->
</div><!-- #primary -->
<?php
get_sidebar();
get_footer();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment