You are here

function taxonomy_term_delete in Drupal 7

Delete a term.

Parameters

$tid: The term ID.

Return value

Status constant indicating deletion.

8 calls to taxonomy_term_delete()
EntityCrudHookTestCase::testTaxonomyTermHooks in modules/simpletest/tests/entity_crud_hook_test.test
Tests hook invocations for CRUD operations on taxonomy terms.
ForumTestCase::testAddOrphanTopic in modules/forum/forum.test
Tests that forum nodes can't be added without a parent.
forum_confirm_delete_submit in modules/forum/forum.admin.inc
Form submission handler for forum_confirm_delete().
TaxonomyHooksTestCase::testTaxonomyTermHooks in modules/taxonomy/taxonomy.test
Test that hooks are run correctly on creating, editing, viewing, and deleting a term.
TaxonomyLoadMultipleTestCase::testTaxonomyTermMultipleLoad in modules/taxonomy/taxonomy.test
Create a vocabulary and some taxonomy terms, ensuring they're loaded correctly using taxonomy_term_load_multiple().

... See full list

1 string reference to 'taxonomy_term_delete'
trigger_taxonomy_term_delete in modules/trigger/trigger.module
Implements hook_taxonomy_term_delete().

File

modules/taxonomy/taxonomy.module, line 708
Enables the organization of content into categories.

Code

function taxonomy_term_delete($tid) {
  $transaction = db_transaction();
  try {
    $tids = array(
      $tid,
    );
    while ($tids) {
      $children_tids = $orphans = array();
      foreach ($tids as $tid) {

        // See if any of the term's children are about to be become orphans:
        if ($children = taxonomy_get_children($tid)) {
          foreach ($children as $child) {

            // If the term has multiple parents, we don't delete it.
            $parents = taxonomy_get_parents($child->tid);
            if (count($parents) == 1) {
              $orphans[] = $child->tid;
            }
          }
        }
        if ($term = taxonomy_term_load($tid)) {
          db_delete('taxonomy_term_data')
            ->condition('tid', $tid)
            ->execute();
          db_delete('taxonomy_term_hierarchy')
            ->condition('tid', $tid)
            ->execute();
          field_attach_delete('taxonomy_term', $term);
          module_invoke_all('taxonomy_term_delete', $term);
          module_invoke_all('entity_delete', $term, 'taxonomy_term');
          taxonomy_terms_static_reset();
        }
      }
      $tids = $orphans;
    }
    return SAVED_DELETED;
  } catch (Exception $e) {
    $transaction
      ->rollback();
    watchdog_exception('taxonomy', $e);
    throw $e;
  }
}