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:
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:
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:
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:
Zurückgegeben wird entweder true
oder ein WP_Error
-Objekt.
Hinweis:
Alternativ können Sie auch die Funktionwp_delete_object_term_relationships()
nutzen. Sie ruft internwp_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:
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:
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:
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: