To list names and descriptions you can use get_terms(). That will return an array with all terms. An example would be:
global $post;
$terms = get_terms( array(
'taxonomy' => 'item_tags',
'hide_empty' => false,
) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
foreach ( $terms as $term ) {
echo '<h2>' . $term->name . '</h2>';
echo apply_filters( 'the_content', $term->description );
$items = get_posts( array (
'post_type' => 'item',
'tax_query' => array(
array(
'taxonomy' => 'item_tags',
'terms' => $term->term_id,
),
),
) );
foreach ( $items as $post ) {
setup_postdata( $post );
?>
<div>
<h2><a href="https://wordpress.stackexchange.com/questions/302807/<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
</div>
<?php
}
}
wp_reset_postdata();
}
Hope it helps!