Custom taxonomies permalinks receive little attention, which is surprising given how useful taxonomies are for organizing content structure on WordPress websites.
Taxonomies are part of the core system that makes WordPress a content management system rather than only a blogging tool. It comes with basic taxonomies like categories and tags, which work fine for standard posts.
If you need more ways to group your content, you can define custom taxonomies by either adding some code or installing a plugin.
What are Custom Taxonomies?
Not every site needs custom taxonomies. A custom taxonomy is a way to organize content beyond the default categories and tags. They are really helpful when you are using custom post types and want to structure them in a way that makes better sense for your content.
For example, a movie review site could use taxonomies like:
- Genre
- Director
- Release Year
For a book store, you might use:
- Author
- Publisher
- Reading Level
When used properly, custom taxonomies can make your site easier to navigate and improve search visibility. It is because, each of terms gets its own archive page, which essentially serves as a landing page.
If you set up a taxonomy as hierarchical, with parent and child levels, WordPress will show this structure in the URLs. This makes navigation easier and helps visitors understand how content is organized.
The Difference Between Flat and Hierarchical Taxonomies
When you register a custom taxonomy in WordPress, it is non-hierarchical by default unless you explicitly change that setting.
- A hierarchical taxonomy allows parent and child terms, just like standard Categories. For example, you could have a "Location" taxonomy. Inside it, you have "USA" (parent) and "New York" (child).
- Non-hierarchical taxonomies behave like Tags. All terms stay on the same level, without parent-child relationships. For example, an "Actors" taxonomy usually lists individual actors, where none of them belongs under another.
Declaring Taxonomies in WordPress
In WordPress, there are a few common ways to declare a custom taxonomy. For most users, the simplest option is to use a plugin.
There are lots of freely available plugins, like ACF or Pods, which allow you to register them directly from the admin dashboard.
If you need a more custom setup, you can register a taxonomy by adding a code snippet with the register_taxonomy() function.
function pm_register_taxonomy() {
	$args = array(
		'labels' => array( 'name' => 'Genres' ),
		'public' => true,
		'hierarchical' => true,
		'rewrite' => array(
			'slug' => 'genres',
			'with_front' => false,
			'hierarchical' => true
		),
	);
	register_taxonomy( 'genre', array( 'book' ), $args );
}
add_action( 'init', 'pm_register_taxonomy' );
Custom Taxonomy Permalinks
Default Permalink Format
When you create a custom taxonomy in WordPress, you can decide how its URLs look by using the rewrite argument.
https://example.com/{taxonomy-slug}/{single-term-slug}/
The rewrite slug is specified as the 'slug' parameter under 'rewrite'. This allows you to set a different URL structure instead of using the default one.
If you skip it, WordPress uses the default taxonomy slug. In the example above, that slug is 'genre'.
https://example.com/genre/science-fiction
You can change it to something else, like the plural 'genres'. Once you do, the final permalink format will update to match this new setting, e.g.:
https://example.com/genres/science-fiction
Changing Individual Slugs
You can also edit the slug of individual terms in a custom taxonomy. This does not offer much flexibility, but it can work for simple websites.
To edit a term’s slug, go to the term’s edit page in the admin dashboard. Enter the new slug in the "Slug" field and save it.
If the term has child terms and taxonomy URLs are set to be hierarchical, their URLs will also reflect the new parent slug, e.g.:
https://example.com/department/europe/poland/
Extra Customization Options
The built-in permalinks in WordPress are limited to basic structures. You might want URLs that are simpler, more readable, or better organized for your content.
A custom permalink plugin gives you full control. You can use it to remove default rewrite bases, add category names, or standardize URLs across post types.
Check out our guide on setting up custom permalinks with Permalink Manager for detailed instructions.



Leave a Reply