The Lodge is members-only design/dev videos and Office Hours.

Next Office Hours Session: "Implementing an SVG Icon System" Nov 30 - 6:00 PM Eastern

Display custom taxonomy (like “the_category”) for custom post type

  • # November 29, 2011 at 6:09 am

    Hi there

    I have a custom post type, “entrepreneurs”, with a custom taxonomy, “sectors” attached to it. Here is the code ( for my custom post type registrations.

    Things you might need to know:

    • “Entrepreneurs” are heirachical, like pages.
    • “Sectors” are like the categories for the post type

    What I want to do…

    In both my archive and single views, I would like to display the assigned sector name for the post below the title – in the same way that you would in, say, a blog article, using “the_category” or something similar. Like so:

    <?php the_category('', '', $post_id) ?>

    The full block of code can be found here (

    I want the H4 to output the custom taxonomy, without a link – resulting in the following layout ( The grey text below the title is sector taxonomy.

    I’ve tried a number of solutions found on various forums and resources, but none are working for me. Any help would be appreciated.

    Thanks in advance.

    # November 29, 2011 at 7:38 am

    This reply has been reported for inappropriate content.

    you are in the right area – but just think of the_category as the default function for the taxonomy “Categories”

    What you need to do is use the terms functions, where you specify the taxonomy you want to use

    Check the bottom of the pages for more functions too.

    # November 29, 2011 at 9:26 am

    Thanks for the nudge in the right direction, Rob.

    I used the following:

    <h4><?php $terms = get_terms("sectors"); $count = count($terms); if ( $count > 0 ){ foreach ( $terms as $term ) { echo $term->name; } } ?> Sector</h4>

    It seems to work.

    As this is a “client” website, and they usually screw everything up when editing, I’d prefer to be able to limit the number of terms outputted to 1. Any help..?

    # November 29, 2011 at 10:27 am

    I use the following to display a term without a link. Not sure how to limit but should be easy enough.

    AFAIK, this is the correct code to use. Yours looks kinda bloated.

    < ?php
    $terms = get_the_terms( $post->ID , 'taxonomyname' );
    foreach ( $terms as $term ) {
    echo $term->name;
    # November 29, 2011 at 10:30 am

    Hey Mike,

    Thanks for sharing that. Always good to trim the fat… It worked.


    # November 30, 2011 at 10:38 am

    This reply has been reported for inappropriate content.

    Awesome :-)

    # May 25, 2013 at 10:41 pm

    Is it possible to modify this so that the term that is output is wrapped in a link that would show the archive of that taxonomy term? (the way a category often is shown)

    # June 4, 2013 at 1:53 pm

    This reply has been reported for inappropriate content.

    The “Examples” section should be what you’re looking for.

    # September 10, 2013 at 1:16 am

    Hi guys.

    Am a beginner to wordpress and I i have been playing around with custom post types and taxonomies. I have product custom post type and three taxonomies assigned to that post type. Here is my functions file for . so the product should have a category, brand and the type. Then I would like to have a query which will return a products with their respective taxonomies. I would really appreciate if i can get help.

    # November 22, 2013 at 4:24 am

    I have played about with the code some more as I needed to display only one custom taxonomy that was a link.
    However I am unable to get the link to work – anyone have any ideas on this?

    See here:

    <?php $terms = get_the_terms( $post->ID , 'yourcustomtaxonomyhere' ); 
                        foreach ( $terms as $term ) {
                        echo '<a href="' . $term_link . '">' . $term->name . '</a>';
    # November 22, 2013 at 4:34 am


    I have managed to get the code working, see following:

    <?php $terms = get_the_terms( $post->ID , 'yourtaxonomyhere' ); 
                        foreach ( $terms as $term ) {
                            $term_link = get_term_link( $term, 'yourtaxonomyhere' );
                            if( is_wp_error( $term_link ) )
                        echo '<a href="' . $term_link . '">' . $term->name . '</a>';
    # January 10, 2014 at 8:11 am

    Thanks @Brightonmike. Your code snippet is exactly what I was looking for. Cheers!

Viewing 12 posts - 1 through 12 (of 12 total)

You must be logged in to reply to this topic.

There's a whole bunch of content on CSS-Tricks.

Search for Stuff   •   Browse the Archives

Get the Newsletter ... or get the RSS feed