14.9. Term löschen

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:

You’re not allowed to see this content. Please log in first.

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 Taxonomie category 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:

  1. Belletristik (20)
    1. Krimi (18)
    2. Roman (17)
      1. Klassiker (21)
      2. Dramatik (22)
    3. Thriller (19)

Wir löschen nun den Term wie folgt:

You’re not allowed to see this content. Please log in first.

<?php
wp_delete_term( 17, 'genre' );
?>

Es passiert folgendes:

You’re not allowed to see this content. Please log in first.

Beispiel 2: Übergabe des Parameters default (Annahmen wie im Beispiel 1).

<?php
wp_delete_term( 17, 'genre', array( 'default' => 18 ) );
?>

Es passiert folgendes:

You’re not allowed to see this content. Please log in first.

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:

You’re not allowed to see this content. Please log in first.

Beispiel 4: Annahmen wie in Beispiel 3.

<?php
wp_delete_term( 17, 'genre', array( 'default' => 22, 'force_default' => false) );
?>

Es passiert folgendes:

You’re not allowed to see this content. Please log in first.

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“.