The 'register_taxonomy_args'
filter allows you to modify the arguments for registering a taxonomy in WordPress.
Usage
To use this filter, you need to add a custom function to your theme’s functions.php
file or a custom plugin. Then hook this function to the register_taxonomy_args
filter.
Code Example
function custom_register_taxonomy_args( $args, $taxonomy, $object_type ) { // Modify $args here return $args; } add_filter( 'register_taxonomy_args', 'custom_register_taxonomy_args', 10, 3 );
Parameters
$args
(array): Array of arguments for registering a taxonomy. See theregister_taxonomy()
function for accepted arguments.$taxonomy
(string): Taxonomy key.$object_type
(string[]): Array of names of object types for the taxonomy.
Examples
Modify the default slug
Scenario: You want to change the default slug for a custom taxonomy.
function modify_taxonomy_slug( $args, $taxonomy, $object_type ) { if ( 'my_custom_taxonomy' === $taxonomy ) { $args['rewrite'] = array( 'slug' => 'custom-slug' ); } return $args; } add_filter( 'register_taxonomy_args', 'modify_taxonomy_slug', 10, 3 );
This code will change the default slug for the my_custom_taxonomy
taxonomy to custom-slug
.
Disable the taxonomy’s archive page
Scenario: You want to disable the archive page for a custom taxonomy.
function disable_taxonomy_archive( $args, $taxonomy, $object_type ) { if ( 'my_custom_taxonomy' === $taxonomy ) { $args['public'] = false; } return $args; } add_filter( 'register_taxonomy_args', 'disable_taxonomy_archive', 10, 3 );
This code will disable the archive page for the my_custom_taxonomy
taxonomy.
Make a taxonomy hierarchical
Scenario: You want to make a custom taxonomy hierarchical, like categories.
function make_taxonomy_hierarchical( $args, $taxonomy, $object_type ) { if ( 'my_custom_taxonomy' === $taxonomy ) { $args['hierarchical'] = true; } return $args; } add_filter( 'register_taxonomy_args', 'make_taxonomy_hierarchical', 10, 3 );
This code will make the my_custom_taxonomy
taxonomy hierarchical.
Change the default sorting order
Scenario: You want to change the default sorting order of a custom taxonomy.
function change_taxonomy_sort_order( $args, $taxonomy, $object_type ) { if ( 'my_custom_taxonomy' === $taxonomy ) { $args['sort'] = true; $args['args'] = array( 'orderby' => 'term_order' ); } return $args; } add_filter( 'register_taxonomy_args', 'change_taxonomy_sort_order', 10, 3 );
This code will change the default sorting order of the my_custom_taxonomy
taxonomy based on the term_order
.
Remove taxonomy from REST API
function remove_taxonomy_from_rest( $args, $taxonomy, $object_type ) { if ( 'my_custom_taxonomy' === $taxonomy ) { $args['show_in_rest'] = false; } return $args; } add_filter( 'register_taxonomy_args', 'remove_taxonomy_from_rest', 10, 3 );
Scenario: You want to remove a custom taxonomy from the REST API.
This code will remove the `my_custom_taxonomy` taxonomy from the REST API, making it inaccessible through the REST API endpoints.