Folgende Funktion löscht einen Term. Enthält er Kind-Elemente so werden diese zum Eltern-Element des zu löschenden Terms angehängt. Sie werden also nicht mit gelöscht sondern bekommen im Notfall die „Eltern-Term-ID“ 0
zugewiesen.
<?php
function wp_delete_term( $term, $taxonomy, $args = array() ) {
...
}
?>
Es gilt:
Zurückgegeben wird folgendes:
true
wenn der Term gelöscht werden konnte;- ein Objekt der Klasse
WP_Error
im Fehlerfall oder 0
wenn versucht wird den Standard-Term der Taxonomiecategory
zu löschen. Es signalisiert einen Abbruch, da der Standard-Term nicht gelöscht werden kann.
Beispiel 1: Folgende Annahmen:
- Ein Artikel mit dem Titel „Weit weg und ganz nah“ wurde angelegt.
- Dem Artikel wurde der Term „Roman“ zugewiesen.
- „Roman“ ist ein Term der Taxonomie „Genre“.
Folgende „Genres“ existieren:
- Belletristik (20)
- Krimi (18)
- Roman (17)
- Klassiker (21)
- Dramatik (22)
- Thriller (19)
Wir löschen nun den Term wie folgt:
<?php
wp_delete_term( 17, 'genre' );
?>
Es passiert folgendes:
Beispiel 2: Übergabe des Parameters default
(Annahmen wie im Beispiel 1).
<?php
wp_delete_term( 17, 'genre', array( 'default' => 18 ) );
?>
Es passiert folgendes:
Beispiel 3: Übergabe des Parameters force_default
. Als zusätzliche Annahme ergänzen wir, dass der Artikel „Weit weg und ganz nah“ nun zu zwei Termen hinzugefügt wurde. Nämlich zu „Roman“ und „Thriller“.
<?php
wp_delete_term( 17, 'genre', array( 'default' => 22, 'force_default' => true ) );
?>
Es passiert folgendes:
Beispiel 4: Annahmen wie in Beispiel 3.
<?php
wp_delete_term( 17, 'genre', array( 'default' => 22, 'force_default' => false) );
?>
Es passiert folgendes:
Hinweis
Da die Taxonomie „Kategorien“ in WordPress standardmäßig ab Installation vorhanden ist, existiert auch eine separate (und zugegeben etwas irreführende) Funktion zum Löschen von Termen in Kategorien. Sie heißt
wp_delete_category()
. Als einziger Parameter wird die Term-ID übergeben. Die Funktion ruft intern folgendes auf:wp_delete_term( $cat_ID, 'category' )
. Die Funktion löscht also nicht etwa eine ganze Taxonomie sondern lediglich einen Term in der Taxonomie „Kategorie“.