Taxonomy Generator


Use this tool to create custom code for Taxonomies with register_taxonomy() function.


  • Fill in the user-friendly form.
  • Click the “Update Code” button.
  • Copy the code to your project.
  • Or save it as a snippet and share with the community.


If you are still learning how to use this tool, check out the following examples:

The function used in the code.
Add Child Themes Support.
Translation file Text Domain. Optional.
Key used in the code. Up to 32 characters, lowercase.
Taxonomy singular name.
Taxonomy plural name.
Comma separated list of Post Types.
Hierarchical taxonomy allows descendants.
Show this taxonomy in the admin UI.
Show taxonomy managing UI in the admin.
Show taxonomy columns on associated post-types.
Show in tag cloud widget.
Taxonomy available for selection in Navigation Menus.
Direct query variable used in WP_Query. e.g. WP_Query( array( 'taxonomy' => 'genre', 'term' => 'comedy' ) )
Custom query variable.
Set custom user capabilities to manage taxonomy. Default: category capabilities
Whether to include the taxonomy in the REST API.
To change the base url of REST API route. Default is the taxonomy key.
REST API Controller class name. Default is 'WP_REST_Terms_Controller'.
A function name that will be called when the count of an associated Post Type is updated.
  Save Snippet
// Register Custom Taxonomy
function hm_register_tax_link_categories() {

	$labels = array(
		'name'                       => _x( 'Link Categories', 'Taxonomy General Name', 'hm_link_categories' ),
		'singular_name'              => _x( 'Link Category', 'Taxonomy Singular Name', 'hm_link_categories' ),
		'menu_name'                  => __( 'Link Category', 'hm_link_categories' ),
		'all_items'                  => __( 'All Link Categories', 'hm_link_categories' ),
		'parent_item'                => __( 'Parent Link Category', 'hm_link_categories' ),
		'parent_item_colon'          => __( 'Parent Link Category:', 'hm_link_categories' ),
		'new_item_name'              => __( 'New Link Category Name', 'hm_link_categories' ),
		'add_new_item'               => __( 'Add New Link Category', 'hm_link_categories' ),
		'edit_item'                  => __( 'Edit Link Category', 'hm_link_categories' ),
		'update_item'                => __( 'Update Link Category', 'hm_link_categories' ),
		'view_item'                  => __( 'View Link Category', 'hm_link_categories' ),
		'separate_items_with_commas' => __( 'Separate Link Categories with commas', 'hm_link_categories' ),
		'add_or_remove_items'        => __( 'Add or remove Link Categories', 'hm_link_categories' ),
		'choose_from_most_used'      => __( 'Choose from the most used', 'hm_link_categories' ),
		'popular_items'              => __( 'Popular Link Categories', 'hm_link_categories' ),
		'search_items'               => __( 'Search Link Categories', 'hm_link_categories' ),
		'not_found'                  => __( 'Not Found', 'hm_link_categories' ),
		'no_terms'                   => __( 'No Link Categories', 'hm_link_categories' ),
		'items_list'                 => __( 'Link Categories list', 'hm_link_categories' ),
		'items_list_navigation'      => __( 'Link Categories list navigation', 'hm_link_categories' ),
	$args = array(
		'labels'                     => $labels,
		'hierarchical'               => true,
		'public'                     => true,
		'show_ui'                    => true,
		'show_admin_column'          => true,
		'show_in_nav_menus'          => true,
		'show_tagcloud'              => true,
		'show_in_rest'               => true,
	register_taxonomy( 'link_category', array( 'helpful_links' ), $args );

add_action( 'init', 'hm_register_tax_link_categories', 0 );