How to Create Custom Taxonomies in WordPress
Content in WordPress can usually be gathered into distinct groups. Most of your posts and pages will be assigned to a type of ‘taxonomy’ – i.e. a category or tag – that already exists. However, you might also need to create a custom WordPress taxonomy.
Fortunately, the process for doing this is straightforward. Knowing how to create and update taxonomies will enable you to better organize your site, and help visitors find what they’re looking for more quickly.
In this article, we’ll look at how to create a custom WordPress taxonomy. However, before that, let’s discuss what a taxonomy is in more detail!
What Is a WordPress Taxonomy?
A WordPress taxonomy is a way to organize posts and other content. The two most common types are categories and tags. Categories are designed for grouping similar posts together, while tags (much like hashtags) describe what a specific post contains.
Most WordPress websites use these built-in taxonomies for organizing content. This is useful to both you and your visitors, since it helps everyone find what they want more efficiently. What’s more, grouping your content this way can even benefit your site’s Search Engine Optimization (SEO).
How to Create a Custom Taxonomy With a Plugin
Categories and tags are great, but what if you want other ways to organize your content? As is standard for WordPress, there are both user-friendly and developer-friendly ways to create a custom taxonomy.
We’re going to cover the plugin approach first. The first step is to choose your desired tool. We’ll use the Pods plugin, based on its user reviews and ease of use. However, there are plenty of other options to choose from, such as Custom Post Type UI.
Step 1: Add a New Blank Taxonomy and Populate the Fields
To get started, you’ll want to install and activate the plugin. Once you’ve done that, head to the Pods Admin > Add New screen within your WordPress dashboard:
Next, select Custom Taxonomy (like Categories or Tags) from the Content Type drop-down menu. You’ll also want to create a singular and plural name for your new taxonomy (for example, “Recipe” and “Recipes” respectively).
You’ll notice a hidden Advanced menu, but those options aren’t required. Once you’ve filled the necessary fields in, click on Next Step and head to the Configure screen.
Step 2: Assign and Save Your Taxonomy
From there, you’ll be brought back to the Edit Pods screen, where you’ll see a success message:
This screen lets you customize your taxonomy further. You can make it hierarchical like a category, or assign it to a custom post type. We’ll display our new taxonomy under the Posts menu, just as with categories and tags.
To do the same, head to the Admin UI screen, and populate the Menu Name field:
Then we’ll go to the Advanced Options tab, and check the box next to Posts (post) in the Associated Post Types menu:
Save your changes, and you’ll see your new taxonomy alongside the others, ready to use:
With that, your new taxonomy is set up and ready to go.
How to Create a Custom Taxonomy With Code
If you’d rather not use a plugin, or if you’re a developer who finds the manual approach easier, you can create your custom taxonomies with code. The steps below are simple to implement, especially if you have previous experience navigating WordPress’ core files.
Step 1: Determine If You Want a Hierarchical or Non-Hierarchical Taxonomy
First, you’ll want to decide whether your taxonomy will be hierarchical or not. Here’s a quick summary of the differences:
- Hierarchical. This lets you have parent and child terms, just as with categories. For example, you could have a parent term called Beginners, and child terms such as Plugins, Themes, and Marketing.
- Non-Hierarchical. Like tags, this only lets you define one term to assign to content, without letting you create child terms.
This decision matters, since the code you’ll need is slightly different depending on your preference.
Step 2: Edit Your functions.php File
Regardless of your taxonomies’ nature, you’ll need access to your functions.php file. Before you begin:
- Make sure you back up your website before carrying out any work on core files.
- Use a child theme to preserve your changes when updating themes and WordPress itself.
- Brush up on your Secure File Transfer Protocol (SFTP) knowledge if needed, and have a dedicated SFTP client to hand (such as FileZilla or Cyberduck).
Then you can log in to your WordPress website through SFTP, and look for your functions.php file. It should be within your primary theme’s folder. Open the file once you’ve found it, and add one of the following code snippets to the bottom, depending on whether you chose a hierarchical taxonomy or not.
You’ll want to change the placeholder names in the above code to whatever you’d like to use for your custom taxonomy. You can also change the post_type within the register_taxonomy function – generally this is going to be Posts, but your needs may vary.
Once you save your changes, you’ll need to do a little more work in order to display your taxonomies. However, before that, let’s discuss how to create custom taxonomies in WooCommerce.
How to Create a Custom Taxonomy in WooCommerce
The good news is that creating a custom taxonomy for WooCommerce products follows almost exactly the same process as the plugin approach outlined above. Of course, you’ll want to ensure that you have WooCommerce installed and products uploaded to your store before carrying those steps out.
The only change required is what happens when you get to the Advanced Options screen. This time, instead of checking Posts (post), you’ll now check Products (product):
Once you save your changes, the taxonomy will be ready to use. Then, the final step is learning how to display the taxonomies you’ve created.
How to Display Taxonomies
If you’ve come this far, you’ll have all the skills necessary to display your taxonomies. This next set of steps involves adding some code and digging around within WordPress’ templates, so make sure to back up your site if you haven’t already.
Step 1: Decide Where the Code Should Be Displayed
For this step, you’ll need some knowledge of WordPress’ template hierarchy. This is because you’ll have to add lines of code to every template where you want your custom taxonomies to display.
Quite often, you’ll want to amend single.php, content.php, or another file within your theme’s template-parts folder. However, you could theoretically add your custom taxonomy to any template file.
If you’re struggling to find the template a specific page uses, the Which Template Am I plugin can get the job done by showing you the template path within your browser. Once you’ve made this decision, the final step is to add some code.
Step 2: Add Code to Where You Want Your Taxonomy Displayed
Next, you’ll again want to access your theme’s files via SFTP, and open the template you chose during the first step. From there, you‘ll have to find the spot in your file where the taxonomy should display, and paste in the following:
<?php the_terms( $post->ID, 'topics', 'Topics: ', ', ', ' ' ); ?>
Once you save your changes, you should see the taxonomy displayed on your WordPress website. Of course, you may need to tweak the placement slightly, but the link should still be clickable and the taxonomy registered.
Customize Your Site With WP Engine
Customizations within WordPress take many forms. In this article we’ve discussed taxonomies, but there are many other features you can add to your site to improve its User Experience (UX).
WP Engine’s flexible assortment of plans gives you the freedom to create and customize your website to your own exacting standards. For more information, check out our website and see for yourself how we can help!