Custom post type multiple loop by taxonomy term

I would like to create one loop that lists the custom posts for each taxonomy term:

Term A:
Item
Item
Item

Read More

Term B:
Item
Item
Item

I would like this to be totally dynamic so if I add a new term it automatically appears. I’ve seen examples where the taxonomy terms are explicity in the code but I am looking for something lower maintenance and more elegant.

Related posts

Leave a Reply

1 comment

  1. Try:

    $tt = get_terms('my_custom_taxonomy', array(
        // You can stick in orderby, order, exclude, child_of, etc. params here.
    ));
    
    foreach ($tt as $term) :
        // Output term name
        print $term->name.  ": ";
    
        $q = new WP_Query(array(
            'post_type' => 'custom_post_type_i_use',
            'post_status' => 'publish',
            'posts_per_page' => -1, // = all of 'em
            'tax_query' => array(
                'taxonomy' => $term->taxonomy,
                'terms' => array( $term->term_id ),
                'field' => 'term_id',
            ),
        ));
    
        $first = true;
        foreach ($q->posts as $item) :
            // ... now do something with $item, for example: ...
            if ($first) : $first = false; else : print ", "; endif;
            print '<a href="'.get_permalink($item->ID).'">'
              .$item->post_title.'</a>';
        endforeach;
    endforeach;
    

    Does that do more or less what you needed?