Build-Note06. Feb. 2022

WordPress Terms mit PHP erstellen, aktualisieren, löschen und bearbeiten.

Terms lassen sich über PHP erstellen, abfragen und bearbeiten. Hierfür stellt WordPress Funktionen zur Verfügung.

Abfragen eines WordPress Terms mit PHP

Um einen Term abzufragen, kannst du die Funktion get_term($term_id, $taxonomy) verwenden. Hierfür benötigst du lediglich die ID und die Taxonomie.

$term_id = 10;
$taxonomy = "post_tag";

/**
 * @var \WP_Term $Term
 */
$Term = get_term($term_id, $taxonomy);

Abfragen eines WordPress Terms bei Slug, Name oder Term ID

Über get_term_by($field, $value, $taxonomy, $output = OBJECT, $filter = 'raw') kannst du einen Term auch über den Slug, den Namen oder die ID abfragen.

/**
 * WordPress Term abfragen mit dem Slug
 * @var \WP_Term|array|false $Term
 */
$Term = get_term_by("slug", "ich-bin-ein-slug", "post_tag");

/**
 * WordPress Term abfragen mit dem Namen
 * @var \WP_Term|array|false $Term
 */
$Term = get_term_by("name", "Ich bin ein Slug", "post_tag");

/**
 * WordPress Term abfragen mit dem Namen
 * @var \WP_Term|array|false $Term
 */
$Term = get_term_by("term_id", 10, "post_tag");

Abfragen aller WordPress Terms von einer Taxonomie

Mithilfe von get_terms($args) kannst du alle Terms einer Taxonomie abfragen.

$args = array(
   'taxonomy' => 'post_tag',
   'hide_empty' => false
);

/**
 * @var array<\WP_Term> $Terms
 */
$Terms = get_terms($args);

Einfügen eines neuen WordPress Terms bei einer Taxonomie

Neue Terms lassen sich über wp_insert_term($term, $taxonomy, $args = array()) hinzufügen. Falls der Term bereits existiert, wird dieser aktualisiert.

/**
 * Argumente können optional angegeben werden
 */
$args = array(
   'description' => 'Beschreibung',
   'parent' => 0,
   'slug' => ''
);

/**
 * Neuen Term erstellen in der Taxonomie post_tag
 */
$term_id = wp_insert_term('Ich bin ein neuer Term', 'post_tag', $args);

Löschen eines Terms in WordPress über PHP

Terms lassen sich auch über PHP schnell und unkompliziert entfernen. Hierzu existiert die Funktion wp_delete_term($term_id,$taxonomy).

/**
 * Löscht den Term mit der Term ID 10 in der Taxonomie post_tag
 */
$result = wp_delete_term(10, 'post_tag');

Abfragen von Metadaten eines Terms

Auch Terms können wie Posts Metadaten enthalten. Diese lassen sich über get_term_meta($term_id, $meta_key, $single) abfragen.

/**
 * Gibt einen einzelnen Wert zurück
 * @var string|int|mixed $meine_meta_daten
 */
$meine_meta_daten = get_term_meta(10,'meine_meta_daten', true);

/**
 * Gibt ein Array zurück 
 * @var array $meine_meta_daten
 */
$meine_meta_daten = get_term_meta(10,'meine_meta_daten');

Löschen von Metadaten eines Terms in WordPress

Metadaten von Terms lassen sich in WordPress über delete_term_meta($term_id, $meta_key, $meta_value = '') löschen.

$result = delete_term_meta(10, 'meine_meta_daten');

Metadaten eines Terms aktualisieren/anlegen über PHP

Um bereits existierende Metadaten eines Terms zu aktualisieren, wird die Funktion update_term_meta($term_id, $meta_key, $meta_value, $prev_value = '') verwendet. Falls die Daten noch nicht exisiteren, werden diese angelegt.

$result = update_term_meta(10, 'meine_meta_daten', 'das wird ausgegeben');