The “register_{$taxonomy}_taxonomy_args” dynamic filter allows you to modify the arguments for registering a specific taxonomy in WordPress.
Usage
$args = apply_filters("register_{$taxonomy}_taxonomy_args", $args, $taxonomy, $object_type);
Parameters
- $args (array): Array of arguments for registering a taxonomy. See the
register_taxonomy()
function for accepted arguments. - $taxonomy (string): Taxonomy key.
- $object_type (string[]): Array of names of object types for the taxonomy.
Examples
Change the default capabilities for a custom taxonomy
Scenario: You want to change the default capabilities for a custom taxonomy called ‘location’.
add_filter('register_location_taxonomy_args', 'modify_location_capabilities', 10, 2); function modify_location_capabilities($args) { $args['capabilities'] = array( 'manage_terms' => 'manage_locations', 'edit_terms' => 'edit_locations', 'delete_terms' => 'delete_locations', 'assign_terms' => 'assign_locations', ); return $args; } // This code modifies the default capabilities for the 'location' taxonomy by using a custom filter.
Disable the REST API for a custom taxonomy
Scenario: You want to disable the REST API for a custom taxonomy called ‘genre’.
add_filter('register_genre_taxonomy_args', 'disable_genre_rest_api', 10, 2); function disable_genre_rest_api($args) { $args['show_in_rest'] = false; return $args; } // This code disables the REST API for the 'genre' taxonomy by setting 'show_in_rest' to false.
Set a custom meta box for a custom taxonomy
Scenario: You want to set a custom meta box for a custom taxonomy called ‘skill’.
add_filter('register_skill_taxonomy_args', 'set_skill_custom_meta_box', 10, 2); function set_skill_custom_meta_box($args) { $args['meta_box_cb'] = 'custom_skill_meta_box'; return $args; } function custom_skill_meta_box() { // Your custom meta box code here. } // This code sets a custom meta box for the 'skill' taxonomy by providing a custom callback function.
Customize rewrite rules for a custom taxonomy
Scenario: You want to customize the rewrite rules for a custom taxonomy called ‘department’.
add_filter('register_department_taxonomy_args', 'customize_department_rewrite_rules', 10, 2); function customize_department_rewrite_rules($args) { $args['rewrite'] = array( 'slug' => 'team', 'with_front' => false, 'hierarchical' => true, ); return $args; } // This code customizes the rewrite rules for the 'department' taxonomy by providing an array of new rules.
Change the default term for a custom taxonomy
Scenario: You want to change the default term for a custom taxonomy called ‘color’.
add_filter(‘register_color_taxonomy_args’, ‘change_color_default_term’, 10, 2);
function change_color_default_term($args) {
$args[‘default_term’] = array(
‘name’ => ‘Blue’,
‘slug’ => ‘blue’,
‘description’ => ‘The default color is blue.’,
);
return $args;
}
// This code changes the default term for the ‘color’ taxonomy by providing an array of new default term properties