WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

share|improve this question
up vote 2 down vote accepted

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.

share|improve this answer

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.

share|improve this answer
+1 images named after slugs is easy to implement and works nicely. – Rarst Feb 19 '11 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.

share|improve this answer

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 }
share|improve this answer
Properly format your code please - thanks. – ialocin Jun 23 '14 at 15:48

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.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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