function taxonomy_term_delete

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

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;
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.