treehouse : what would you like to learn today?
Web Design Web Development iOS Development

[Solved] Display custom taxonomy (like "the_category") for custom post type

  • Hi there

    I have a custom post type, "entrepreneurs", with a custom taxonomy, "sectors" attached to it. Here is the code (http://codepad.org/ceQH4a6a) 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 (http://codepad.org/ub3c9N9P).

    I want the H4 to output the custom taxonomy, without a link - resulting in the following layout (http://db.tt/xiL3w0ty). 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.
  • 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

    http://codex.wordpress.org/Function_Reference/get_terms
    http://codex.wordpress.org/Function_Reference/wp_get_post_terms

    Check the bottom of the pages for more functions too.
  • 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..?
  • 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;
    }
    ?>
  • Hey Mike,

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

    Cheers.
  • Awesome :-)