Parsed: 126243

function unregister_taxonomy( $taxonomy ) {
  if ( ! taxonomy_exists( $taxonomy ) ) {
    return new WP_Error( 'invalid_taxonomy', __( 'Invalid taxonomy.' ) );
  }

  $taxonomy_object = get_taxonomy( $taxonomy );

  // Do not allow unregistering internal taxonomies.
  if ( $taxonomy_object->_builtin ) {
    return new WP_Error( 'invalid_taxonomy', __( 'Unregistering a built-in taxonomy is not allowed.' ) );
  }

  global $wp_taxonomies;

  $taxonomy_object->remove_rewrite_rules();
  $taxonomy_object->remove_hooks();

  // Remove the taxonomy.
  unset( $wp_taxonomies[ $taxonomy ] );

  
/**
 * Fires after a taxonomy is unregistered.
 *
 * @since 4.5.0
 *
 * @param string $taxonomy Taxonomy name.
 */
  do_action( 'unregistered_taxonomy', $taxonomy );

  return true;
}