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.
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.
Amina says
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.
WPBeginner Support says
Glad our guide was helpful
Admin
Jared says
“This plugin has been closed as of November 25, 2018 and is not available for download. Reason: Guideline Violation.”
WPBeginner Support says
Thank you for letting us know, we will certainly take a look and update this article when we are able.
Admin
Mario says
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…
WPBeginner Support says
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
Antonio says
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
WPBeginner Support says
on line 12 of the code, you would surround the word taxonomy with single quotes (‘ ‘) to remove that error
Admin
Nicole says
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!
Dennis says
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
Hernan says
Hi.
Do you know how to put it so that it counts the posts of each “slug” of the custom taxonomy in the shortcode?
Muhammad Mobeen says
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.
Deb S says
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.
deuts says
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)?
siva says
Hi Team
Which php file, i want save code. please tell me
Chris says
Thank you!
Saved me loads of time…..
Julie says
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!!
Nitin says
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.
Aniket says
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.
jas says
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.