Can I have custom taxonomies but with icons associated with them?

Example: I want a list of skills I used for my portfolio item (eg. PHP, MySQL, CSS etc).
Instead of text, I thought of displaying icons.

So I needto somehow set icons for my taxonomies.

How might I do it?
Is it very complex? How might it look or whats it like to build it?
the steps?

5 Answers 5


I'd suggest the Taxonomy Images Plugin. It says it's in Beta but I've used it on a few sites already and it works great.


I would just build it into your theme, and have the icons stored in your theme folder.

When you show them on the front end, just check for the icon image instead of showing the terms:

foreach( $terms as $term ) {

    if( file_exists( TEMPLATEPATH . 'images/' . $term->slug . '.png' )
        //show image

If you did need it to be uploaded through the WP-Admin, then you can hook into the edit term page and add another form field:

add_action( 'my_taxonomy_edit_form_fields', 'my_callback_function_to_show_upload' );

If you did use the above method, you would also have to change the "enc-type" of the form.

  • 1
    +1 images named after slugs is easy to implement and works nicely.
    – Rarst
    Commented Feb 19, 2011 at 13:09

You are not the only one who is asking so i posted an how to add extra fields to custom taxonomies that is only if you want to add them by yourself. if not then Joe Hoyle solution to upload the images to the theme's directory and name them according to the term->ID.png gets my +1 vote.


You can do it this way, based on @joehoyle's answer. Well, this has to be adapted to your theme template.

     $terms = get_the_terms( $post->ID, 'custom_cat' ); 
     $numcat=sizeof( $terms );  
     foreach ( $terms as $term ) {
         $term_link = get_term_link( $term, 'custom_cat' );  
         if( file_exists( TEMPLATEPATH .'/images/'. $term->slug .'.png' ) ) { ?>    
             <a rel="tag" href="<?php echo $term_link; ?>">
                     title="<?php  echo $term->name ;?>" 
                     style="height: 21px; width: 21px;" 
                              echo get_template_directory_uri() .
                              '/images/' .
                              $term->slug .
                     alt="<?php  echo $term->name; ?>"
         <?php } else { ?>  
             <a rel="tag" href="<?php echo $term_link; ?>">
                 <?php  echo $term->name; ?>
        <?php }

The Advanced Custom Fields plugin handles this well; you can add an 'image' custom field to your custom taxonomy via ACF and it will show up correctly on the taxonomy's control panel page, then you can use ACF's get_field() function to display it in your templates.

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.