If I understood your problem correctly within the $termchildren
loop, you’ll need to add a get_posts()
tax_query
that will find all posts that have the current loops term. I think somthing similar to the following will work:
if ( have_posts() ) :
echo "<h2>Subcategories</h2>";
// if you're on a single post, it will return the post object
// if you're on a page, it will return the page object
// if you're on an archive page, it will return the post type object
// if you're on a category archive, it will return the category object
// if you're on an author archive, it will return the author object
$term = get_queried_object();
echo "Current \$term is: <pre>";
print_r($term);
echo "</pre>";
$termchildren = get_term_children( $term->term_id, $term->taxonomy );
echo '<ul>';
foreach ( $termchildren as $child ) {
$childTerm = get_term_by('id', $child, $term->taxonomy );
echo '<li><a href="' . get_term_link( $childTerm, $term->taxonomy ) . '">' . $childTerm->name . '</a>';
// posts with this term
$childTermPosts = get_posts(array(
'post_type' => 'post', // WTV your post_type is for Downloads tax
'numberposts' => -1,
'tax_query' => array(
array(
'taxonomy' => $term->name,
'field' => 'id',
'terms' => $child,
'include_children' => true
)
)
));
// then loops the posts
if (count($childTermPosts) > 0) {
echo "<ul>"
foreach ($childTermPosts as $childTermPost)
echo "<li><a href="".get_permalink( $childTermPost->ID )."">{$childTermPost->post_title}</a></li>";
echo "</ul>"
}
echo "</li>";
} //end foreach
echo '</ul>';
//wp_link_pages(...);
//the_posts_navigation(..);
else :
echo "get_template_part(template-parts/content) here";
//get_template_part( 'template-parts/content', 'none' );
endif;
I’ve noted in comments that get_queried_object()
returns a lot depending on your current template file.
The above is not tested, but hopefully it gives an idea of what can be done. I commented and removed things because sometimes to narrow down your problem or even what you’re after is to minimize the code, and having the code spit-out current variables – adding all the html and pagination etc last.