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

Marc Wag­ner

Febru­ar 6, 2022

2 min read|

Terms las­sen sich über PHP erstel­len, abfra­gen und bear­bei­ten. Hier­für stellt Word­Press Funk­tio­nen zur Ver­fü­gung.

Abfragen eines WordPress Terms mit PHP #

Um einen Term abzu­fra­gen, kannst du die Funk­ti­on get_term($term_id, $taxo­no­my) ver­wen­den. Hier­für benö­tigst du ledig­lich die ID und die Taxo­no­mie.

$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, $taxo­no­my, $out­put = OBJECT, $fil­ter = ‘raw’) kannst du einen Term auch über den Slug, den Namen oder die ID abfra­gen.

/**
 * 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 #

Mit­hil­fe von get_terms($args) kannst du alle Terms einer Taxo­no­mie abfra­gen.

$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 las­sen sich über wp_insert_term($term, $taxo­no­my, $args = array()) hin­zu­fü­gen. Falls der Term bereits exis­tiert, wird die­ser aktua­li­siert.

/**
 * 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 las­sen sich auch über PHP schnell und unkom­pli­ziert ent­fer­nen. Hier­zu exis­tiert die Funk­ti­on 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ön­nen wie Posts Meta­da­ten ent­hal­ten. Die­se las­sen sich über get_term_meta($term_id, $meta_key, $sin­gle) abfra­gen.

/**
 * 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 #

Meta­da­ten von Terms las­sen sich in Word­Press ü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 exis­tie­ren­de Meta­da­ten eines Terms zu aktua­li­sie­ren, wird die Funk­ti­on update_term_meta($term_id, $meta_key, $meta_value, $prev_value = ”) ver­wen­det. Falls die Daten noch nicht exi­si­te­ren, wer­den die­se ange­legt.

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

Arti­kel von:

Marc Wag­ner

Hal­lo, Marc hier. Ich bin der Grün­der von Forge12 Inter­ac­ti­ve und bereits seit über 20 Jah­ren lei­den­schaft­lich dabei Web­sei­ten, Online­shops, Anwen­dun­gen und SaaS-Lösun­gen für Unter­neh­men zu ent­wi­ckeln. Vor der Grün­dung habe ich bereits in Bör­sen notier­ten Unter­neh­men gear­bei­tet und mir aller­lei Wis­sen ange­eig­net. Die­ses Wis­sen möch­te ich nun an mei­ne Kun­den wei­ter­ge­ben.

Hast du eine Fra­ge? Hin­ter­lass bit­te einen Kom­men­tar