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:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

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:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

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

Es passiert folgendes:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

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

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

Es passiert folgendes:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

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:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

Beispiel 4: Annahmen wie in Beispiel 3.

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

Es passiert folgendes:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

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