Removes an already registered taxonomy from an object type.
Parameters
$taxonomystringrequired- Name of taxonomy object.
$object_typestringrequired- Name of the object type.
Source
function unregister_taxonomy_for_object_type( $taxonomy, $object_type ) {
global $wp_taxonomies;
if ( ! isset( $wp_taxonomies[ $taxonomy ] ) ) {
return false;
}
if ( ! get_post_type_object( $object_type ) ) {
return false;
}
$key = array_search( $object_type, $wp_taxonomies[ $taxonomy ]->object_type, true );
if ( false === $key ) {
return false;
}
unset( $wp_taxonomies[ $taxonomy ]->object_type[ $key ] );
/**
* Fires after a taxonomy is unregistered for an object type.
*
* @since 5.1.0
*
* @param string $taxonomy Taxonomy name.
* @param string $object_type Name of the object type.
*/
do_action( 'unregistered_taxonomy_for_object_type', $taxonomy, $object_type );
return true;
}
Hooks
- do_action( ‘unregistered_taxonomy_for_object_type’,
string $taxonomy ,string $object_type ) Fires after a taxonomy is unregistered for an object type.
Changelog
| Version | Description |
|---|---|
| 3.7.0 | Introduced. |
Below is an example of how you can entirely remove tags from use for blog posts. This code will remove the Tags admin menu item, the Tags column when viewing the list of posts and the Tags metabox when editing a single post.
/wp-admin/includes/plugin.phpon line 1937 I had to disable this code from the functions.php file in multiple client websites.Needed to remove
categoryfrom the defaultpostbut I get an “undefined offset: 2” error when I use the above code. Is it that this function is no longer in core or are there aspects to it that’re missing?