14.12. Term-Objekt-Verbindungen

Verbindung neu erstellen

Folgende Funktion stellt eine Verbindung eines Objekts (z.B. eines Beitrags) mit einem oder mehreren Termen (z.B. Schlagwörtern) her. Die Funktion überschreibt alle bestehenden Verbindungen, es sei denn der $append-Parameter wird auf true gesetzt. So ist sie aufgebaut:

<?php
function wp_set_object_terms( $object_id, $terms, $taxonomy, $append = false ) {
	...
}
?>

Es gilt:

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

Die Funktion gibt ein array von Term-IDs zurück die bei einer Änderung betroffen sind. Ansonsten erhält man ein WP_Error-Objekt zurück.

Beispiel

WordPress wendet beim Speichern eines Beitrags in der Funktion wp_set_post_terms() oben genannte Funktion an:

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

Verbindung anhängen

Weitere Terme können mithilfe der Funktion wp_add_object_terms() angehängt werden. Sie ist jedoch nur ein Alias für die bereits erwähnte wp_set_object_terms()-Funktion. Der Unterschied ist, dass der letzte Parameter ($append) fehlt, dieser aber intern immer auf true gesetzt wird:

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

Verbindungen aufheben

Wenn Verbindungen hergestellt werden können, dann lassen sie sich auch wieder lösen. Das funktioniert so:

<?php
function wp_remove_object_terms( $object_id, $terms, $taxonomy ) {
	...
}
?>

Es gilt:

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

Zurückgegeben wird entweder true oder ein WP_Error-Objekt.

Hinweis:
Alternativ können Sie auch die Funktion wp_delete_object_term_relationships() nutzen. Sie ruft intern wp_remove_object_terms() auf.

Alle Verbindungen lösen

Mit wp_delete_object_term_relationships() lassen sich alle Verbindungen von Termen, die zu einem Objekt zugewiesen wurden, wieder lösen.

<?php
function wp_delete_object_term_relationships( $object_id, $taxonomies ) {
	...
}
?>

Es gilt:

  • $object_id (int)
    Die Objekt-ID dessen Referenz zu den Termen gelöscht werden soll. Zum Beispiel eine Beitrags-ID.
  • $taxonomy (string|array)
    Die Slug-Bezeichnung oder ein Array von Slugs einer Taxonomie.

Die Funktion hat keinen Rückgabewert.

Terme eines Objekts abrufen

Sie haben gelernt, dass Terme zu Objekten zugeordnet werden können. In den meisten Fällen ist ein Objekt ein Post, also ein Beitrag oder eine Seite. Mit der Funktion wp_get_object_terms() können Sie nun diese Terme wieder abrufen. Sinnvoll zum Beispiel im Frontend, wenn Sie die Terme für den Benutzer sichtbar ausgeben wollen.

<?php
function wp_get_object_terms( $object_ids, $taxonomies, $args = array() ) {
	...
}
?>

Es gilt:

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

Die Funktion gibt die IDs der Terme oder ein WP_Error-Objekt zurück. Falls nichts gefunden wurde, wird ein leeres Array zurückgegeben.

Beispiel:

WordPress nutzt intern oben genannte Funktion wie folgt:

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

Wie Sie sehen, können so alle Terme der Taxonomie „Kategorie“ zu einem Beitrag abgerufen werden.

Objekt-Term-Verknüpfung prüfen

Fehlt nur noch eine Funktion. Sie überprüft, ob ein Objekt einem Term zugewiesen wurde.

<?php
function is_object_in_term( $object_id, $taxonomy, $terms = null ) {
	...
}
?>

Es gilt:

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

Zurückgegeben wird ein boolscher Wert (true|false) oder ein WP_Error-Objekt.

Beispiel

Anwendung findet diese Funktion in der Funktion has_category() die von Theme-Autoren im Frontend benutzt werden kann:

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