I have setup two custom taxonomies for a custom post type that I have created. The post type is called beer, and the two taxonomies are country and brewers.

I would like to list them like this.


I can pull the countries using this code.

    $terms_country = get_terms('country');
    foreach ($terms_country as $term_country) {
    echo "<h3 class=\"country-heading\" id=\"".$term_country->slug."\">";
    echo '<a href="/beers/country/' . $term_country->name . '">' . $term_country->name       . '</a>';
    echo "</h3>";

I need to query the country term to list the Brewers that have that taxonomy attached to the post as well.


1 Answer 1


NOTE: This answer is supposed to be in addition to the answer here

The function used returns an array of all the items, so the best way to display them is to use a foreach loop. As a usage example

global $wpdb;
$result = $wpdb->get_col(....); //copy the line from the aforementioned answer

if($result) {
    echo '<ul>';
    foreach($result as $term) {
        echo '<li>' . $term . '</li>';
    echo '</ul>';

In case you changed the get_col to get_results to query more details about the terms, the foreach loop changes just a little

    foreach($result as $term) {
        echo '<li>' . $term->name . ' with slug ' . $term->slug . '</li>';
  • This only lists the first grouping. It is doing almost the same thing as wp_list_categories. How can I get the Brewers looped inside of this?
    – dclardy
    Nov 12, 2012 at 3:06
  • Maybe i didn't exactly get you, wp_list_categories lists all the terms. This however, lists the countries terms with attached posts that also have brewers attached Nov 12, 2012 at 4:26
  • or are you looking for get_the_terms. It returns the terms in a specific taxonomy attached to a post Nov 12, 2012 at 4:29
  • All of the posts are going to have both taxonomies attached so that doesn't really matter in this case. I need to list them as described in my first post. All countries then all brewers then the posts by brewer.
    – dclardy
    Nov 12, 2012 at 15:19
  • For that i think maybe you may loop through the posts of country & use get_the_terms to get all the brewers but there must be another more efficient way Nov 12, 2012 at 18:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.