Beginner's Guide for WordPress / Start your WordPress Blog in minutes

How to Display Custom Taxonomy Terms in WordPress Sidebar Widgets

WordPress has come a long way from being a simple blogging platform. With additions of custom post types and custom taxonomies, it is being used as a true content management system (CMS). In response from our article on how to create custom taxonomies in WordPress, some of our readers asked us how to display custom taxonomy terms in sidebar widgets. In this article we will show you how to display custom taxonomy terms in WordPress sidebar widgets.

We will show you how to display custom taxonomy terms in sidebar widgets using two different methods. The first method is by installing a plugin which is simpler and easier. We recommend using this method for majority of our audience. The second method involves creating your own shortcode. This method is for those who like to know how things work and have more control over the output.

Adding Custom Taxonomy Terms in a Widget (Plugin)

To display custom taxonomy terms in sidebar or other widget areas using a plugin, the first thing you need to do is install and activate Custom Taxonomies Menu Widget plugin. Upon activation, it adds a custom taxonomies menu widget under Appearance » Widgets. Drag and drop the widget to your sidebar. The widget configuration options allow you to choose the taxonomies you want to display or exclude. It also allows you to exclude terms inside a taxonomy.

Showing Custom Taxonomies in Sidebar using Widget

Adding Custom Taxonomy Terms with Shortcode

Custom Taxonomies Menu Widget plugin allows you to easily display terms from any custom taxonomy, without worrying about the code. However some users would want to learn how to do it manually, so that they could have more control on how terms for their custom taxonomy appears in their widgets. Furthermore, using the shortcode method allows you to display taxonomy terms within your post content should you need to.

First we need to create a shortcode that displays a list of terms and accepts parameters. The only parameter we need is the name of the taxonomy. Add this code in a site-specific plugin:


// First we create a function
function list_terms_custom_taxonomy( $atts ) {

// Inside the function we extract custom taxonomy parameter of our shortcode

	extract( shortcode_atts( array(
		'custom_taxonomy' => '',
	), $atts ) );

// arguments for function wp_list_categories
$args = array( 
taxonomy => $custom_taxonomy,
title_li => ''
);

// We wrap it in unordered list 
echo '<ul>'; 
echo wp_list_categories($args);
echo '</ul>';
}

// Add a shortcode that executes our function
add_shortcode( 'ct_terms', 'list_terms_custom_taxonomy' );

//Allow Text widgets to execute shortcodes

add_filter('widget_text', 'do_shortcode');

The code above creates a shortcode ct_terms that requires one parameter custom_taxonomy. To use this shortcode drag and drop a Text widget into your sidebar. Add this shortcode in your Widget and save.

[ct_terms custom_taxonomy=customtaxonomyname]

Replace customtaxonomyname with the name of the taxonomy you want to list.

We hope that you find this article useful in displaying custom taxonomy terms in your sidebar or other widget area. Let us know how you prefer to list terms of a custom taxonomy in the comments below.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit – a collection of WordPress related products and resources that every professional should have!

Reader Interactions

20 CommentsLeave a Reply

  1. I have been trying to produce a simple list of custom tags on my website for hours! When I tried this it really was with little hope, so I couldn’t believe it when it worked! Thank you for all the work you are doing at WPBeginner; it’s incredibly useful.

  2. “This plugin has been closed as of November 25, 2018 and is not available for download. Reason: Guideline Violation.”

    • Thank you for letting us know, we will certainly take a look and update this article when we are able.

      Admin

  3. I am getting this warning in my site:

    Warning: Use of undefined constant taxonomy – assumed ‘taxonomy’ (this will throw an Error in a future version of PHP) in…

    • It would depend on where that error message is being generated from. If the error says it is from wp-content/plugins/plugin name then you would want to reach out to that plugin’s support and they should be able to assist.

      Admin

  4. Hi, the code give me this warning:

    Warning: Use of undefined constant taxonomy – assumed ‘taxonomy’ (this will throw an Error in a future version of PHP) in /home/public_html/wp-content/plugins/code-snippets/php/snippet-ops.php(361) : eval()’d code on line 12

    How can I fix it?
    Thanks

    • on line 12 of the code, you would surround the word taxonomy with single quotes (‘ ‘) to remove that error :)

      Admin

  5. Hello, trying to apply this from within a post. I want it to list the custom taxonomies I have associated the post to and this is not working. How could I do this? Thanks!

    • Yea I’m currently scouring the web trying to figure this out myself. Did you ever get a solid answer to this? It seems like it should be such a basic need

  6. Hi.
    Do you know how to put it so that it counts the posts of each “slug” of the custom taxonomy in the shortcode?

  7. Hi WPbeginner,

    Thanks for the code. It works. BUT I’m using it to output the taxonomies into the posts and list structure doesn’t display well (goes to the top of the post).

    Please guide me how to output the taxonomies in a span instead of a list.

    • I had the same problem and had to modify the code somewhat.

      add ‘echo’=>false to your args

      $args = array(
      taxonomy => $custom_taxonomy,
      title_li => ”,
      ‘echo’ => false,
      );

      and then “return” the value instead of echoing it.

      $widgettext = ” . wp_list_categories($args) . ”;
      return $widgettext;

      and then the list displays inside the widget box.

  8. What if I want to display a “linked” top 10 used terms of my custom taxonomy in a period of time (e.g. the last 30 or 90 days)?

  9. Finally! An article that works. I have tried all different approaches, but yours is simple and functions. I styled the list so it mimicked the look of the theme sidebar links. Thanks for the article!!

  10. Thanks for tutorial. My custom taxonomies are displaying. But the problom is my list is not in proper hierarchy. Child list is not displaying as a child. All data is displaying in a single unordered list. Second thing i want to give class to my parent list like and child also. How it can be possible.

  11. Hi,
    i would like to add selected taxonomies on my sidebar. I have installed the plugin and it works fine. But i would like to know/learn, is there a way to add selected taxonomies using the code? Like there could be a exclude or include feature where in i could manually add the id’s of the taxonomy that i would want to display or not. Thanks.

  12. very helpful post but i am facing one problem with this,
    i am using Custom Taxonomies Menu Widget and able to show a custom taxonomy in sidebar but when i click on the category link of custom taxonomy than page shows that No posts found.

    is there any problem in archive page????

    please help.

Leave A Reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.