• All vocabularies no longer have numerically indexed vid vocabulary identifiers. Instead, vocabularies are referenced exclusively by the $vocabulary->machine_name property, which existed previously but now is the only identifier.
  • Machine names may no longer be changed on vocabularies after they have been created.
  • Taxonomy $term variables previously used both $term->vid and/or $term->vocabulary_machine_name to reference their parent vocabulary. $term->vid no longer exists at all, and $term->vocabulary_machine_name has been renamed to just $term->vocabulary to bring it inline with $node->type and $user->roles, which both reference just machine names.
  • A number of functions that used to take $vid parameters now take machine names instead:
    • taxonomy_vocabulary_load($vid) => taxonomy_vocabulary_load($vocabulary_name)
    • taxonomy_vocabulary_delete($vid) => taxonomy_vocabulary_delete($vocabulary_name)</li>
    • taxonomy_get_tree($vid) => taxonomy_get_tree($vocabulary_name)
    • taxonomy_term_load_children($tid, $vid = 0) => taxonomy_term_load_children($tid, $vocabulary_name = NULL)
    • taxonomy_get_tree($vid, $parent = 0, $max_depth = NULL, $load_entities = FALSE) => taxonomy_get_tree($vocabulary_name, $parent = 0, $max_depth = NULL, $load_entities = FALSE)
    • taxonomy_vocabulary_load_multiple($vids = array()) => taxonomy_vocabulary_load_multiple($machine_names = array())
  • taxonomy_get_vocabularies() has been restored to have parity with Drupal 7.
  • taxonomy_vocabulary_machine_name_load($name) is deprecated, since all vocabularies are now loaded by name.
  • Permissions for edit terms in x and delete terms in x now use the machine name instead of the vid.
Introduced in branch: 
Introduced in version: 
Module developers
Related Github Issues: