Taxonomy listing issue - does not display how I would like
What I have is a:
Taxonomy: menu_type
- Term: drink (parent term)
- Sub term: drink 1, drink 2 (child terms)
- Term: appetizer (parent term)
- Sub term: appetizer 1, appetizer 2 (child terms)
- Term: drink (parent term)
I want to go to the drink
page and have it display like this - all the posts within that taxonomy:
Drink
Drink 1
- Drink 1 post
- Drink 1 post
Drink 2
- Drink 2 post
- Drink 2 post
And the same for appetizer
.
But, right now I get this:
- Drink
- Drink 1 post
- Drink 1 post
- Drink 2 post
- Drink 2 post
Here is my code:
/*
Template Name: taxonomy-menu_type
*/
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); ?
?php get_header(); ?
div class="container-fluid "
div class="row page-title-row"
div class="container"
h2spanMenu/span | ?php echo apply_filters( 'the_title', $term-name ); ?/h2
?php if ( category_description() ) : // Show an optional category description ?
p?php echo category_description(); ?/p
?php endif; ?
/div
/div
/div
div class="container-fluid other-pgbody"
div class="row infor-row"
div class="container"
?php global $query_string;
query_posts( $query_string . 'order=ASC' ); ?
?php if (have_posts()) : ?
?php
$terms = get_terms($post-ID, "print_type");
echo 'h3 class="child-term"'.$term-name.'/h3';
?
div class="col-sm-12 menu-list"
?php while (have_posts()) : the_post(); ?
div class="col-sm-12 price-row col-md-6 clearfix"
div class="item-price"
?php if ($price = get_post_meta($post-ID,'_marvilmedia_price',true)): ??php echo '$'.$price; ??php endif; ?
/div
div class="item-info"
span?php the_title(); ?/spanbr/
?php $terms_as_text = get_the_term_list( $post-ID,'menu_side', '', ', ');
if (!empty($terms_as_text)) echo '', strip_tags($terms_as_text) ,''; ?
/div
/div
?php endwhile; ?
!--/table--
/div
?php else :
echo 'h2No Menu Item for '.$term-name.'/h2'; ?
?php endif; ?
/div
/div
div class="row free-row"
/div
/div
?php get_footer(); ?
SOLVED
I found the answer in another post that was answered by @Gustav for anyone looking a solution like you can follow the link or view the code below it works perfectly. List post from current taxonomy children
THE WORKING CODE
?php
$term_slug = get_query_var( 'term' );
$taxonomyName = get_query_var( 'taxonomy' );
$current_term = get_term_by( 'slug', $term_slug, $taxonomyName );
$termchildren = get_term_children( $current_term-term_id, $taxonomyName );
foreach ($termchildren as $child) {
$term = get_term_by( 'id', $child, $taxonomyName );
$wpq = array (
'taxonomy'=$taxonomyName,
'term'=$term-slug,
'order'='asc',
'orderby'='title');
$query = new WP_Query ($wpq);
$taxonomy_img = get_term_meta( $term-term_id, 'tax-image', true );
//echo "$term-name:br /";
?
div class="row infor-row"
div class="container"
?php echo 'h3 class="child-term"'.$term-name.'/h3'; ?
div class="col-sm-12 menu-list"
?php if ($query-have_posts() ) : ?
?php while ($query-have_posts() ) : $query-the_post(); ?
div class="col-sm-12 price-row col-md-6 clearfix"
div class="item-price"?php if ($price = get_post_meta($post-ID,'_marvilmedia_price',true)): ??php echo '$'.$price; ??php endif; ?/div
div class="item-info"
span?php the_title(); ?/spanbr/
?php $terms_as_text = get_the_term_list( $post-ID,'menu_side', '', ', '); if (!empty($terms_as_text)) echo '', strip_tags($terms_as_text) ,''; ?
/div
/div
?php endwhile; ?
!--/table--
/div
/div
/div
div class="row free-row" style="background-image: url('?php echo $taxonomy_img; ?');"
/div
?php else :
echo 'h2No Menu Item for '.$term-name.'/h2'; ?
?php endif;?
?php wp_reset_query(); ?
?php
echo "";
}
?
Topic listing taxonomy custom-taxonomy custom-post-types Wordpress
Category Web