function taxonomy_term_delete
7.x taxonomy.module | taxonomy_term_delete($tid) |
Delete a term.
Parameters
$tid: The term ID.
Return value
Status constant indicating deletion.
8 calls to taxonomy_term_delete()
- EntityCrudHookTestCase::testTaxonomyTermHooks in drupal-7.x/
modules/ simpletest/ tests/ entity_crud_hook_test.test - Tests hook invocations for CRUD operations on taxonomy terms.
- ForumTestCase::testAddOrphanTopic in drupal-7.x/
modules/ forum/ forum.test - Tests that forum nodes can't be added without a parent.
- forum_confirm_delete_submit in drupal-7.x/
modules/ forum/ forum.admin.inc - Form submission handler for forum_confirm_delete().
- TaxonomyHooksTestCase::testTaxonomyTermHooks in drupal-7.x/
modules/ taxonomy/ taxonomy.test - Test that hooks are run correctly on creating, editing, viewing, and deleting a term.
- TaxonomyLoadMultipleTestCase::testTaxonomyTermMultipleLoad in drupal-7.x/
modules/ taxonomy/ taxonomy.test - Create a vocabulary and some taxonomy terms, ensuring they're loaded correctly using taxonomy_term_load_multiple().
2 string references to 'taxonomy_term_delete'
- trigger_taxonomy_term_delete in drupal-7.x/
modules/ trigger/ trigger.module - Implements hook_taxonomy_term_delete().
- trigger_trigger_info in drupal-7.x/
modules/ trigger/ trigger.module - Implements hook_trigger_info().
File
- drupal-7.x/
modules/ taxonomy/ taxonomy.module, line 701 - 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;
}
}