xh30hw
Last Updated: February 25, 2016
·
2.387K
· jackabox

Looping through custom posts by custom taxonomies in WordPress

Recently I had been asked to set up a loop in WordPress which looped through any terms assigned to the custom post and displayed them on the page. The below code is a pretty simple way, I found, to do it.

<?php
// Get all the categories
$categories = get_terms( 'service-category' );

// Loop through all the returned terms
foreach ( $categories as $category ):

    // set up a new query for each category, pulling in related posts.
    $services = new WP_Query(
        array(
            'post_type' => 'services',
            'showposts' => -1,
            'tax_query' => array(
                array(
                    'taxonomy'  => 'service-category',
                    'terms'     => array( $category->slug ),
                    'field'     => 'slug'
                )
            )
        )
    );
?>

<h3><?php echo $category->name; ?></h3>
<ul>
<?php while ($services->have_posts()) : $services->the_post(); ?>
    <li><?php the_title(); ?></li>
<?php endwhile; ?>
</ul>

<?php
    // Reset things, for good measure
    $services = null;
    wp_reset_postdata();

// end the loop
endforeach;
?>

Full article was written on my blog at: http://jackabox.co.uk/blog/looping-through-custom-posts-with-custom-taxonomies