Kategorien und Schlagworte – die Basics:
Das setzten einer Kategorie für einen WordPress-Beitrag ist eigentlich ganz leicht.
Entweder wählt man beim Erstellen im Backend eine Kategorie aus, oder nicht.
Wenn wir uns für Letzteres entscheiden, so greift einfach die Voreinstellung und „Allgemein“/“Uncategorized“ wird eingetragen.
Dies können wir natürlich jederzeit auch abwählen oder andere Kategorien wählen und/oder erstellen.
Was im Backend allerdings nicht so ohne weiteres funktioniert, ist absolut keine Kategorie zu wählen. Bei den Tags/Schlagwörter ist das hingegen kein Problem.
Das setzen einer Kategorie mittels PHP.
WordPress bietet einige Funktionen zum Erstellen der Kategorien.
Zu beachten ist hierbei, dass wp_set_post_terms();
nur beim WordPress-eigenen Post-Type „post“ funktioniert! Wenn wir es mit einem Custom-Post-Type zu tun bekommen, müssen wir wp_set_object_terms();
verwenden.
Wenn wir hingegen bereits wissen, dass wir eine Kategorie für einen einfachen Beitrag setzen möchten, verwenden wir am einfachsten wp_set_post_categories();
.
Diese Funktion verwendet unsere Angaben und übergibt sie der Funktion wp_set_post_terms();
. Was wiederum bedeutet, dass wp_set_post_categories();
nur beim WordPress-eigenen Post-Type „post“ funktioniert.
wp_set_post_terms();
übergibt unsere Daten auch nur wp_set_object_terms();
allerdings eben mit bereits getroffenen Voreinstellungen für normale Beiträge.
Die PHP-Funktionen
Eine kleine Übersicht:
- wp_set_object_terms( $object_id, $terms, $taxonomy, $append ); bzw.
- wp_set_post_terms( $post_id, $terms, $taxonomy, $append ); bzw.
- wp_set_post_categories( $post_ID, $post_categories, $append );
Egal für welche Funktion wir uns entscheiden, wenn wir diese Voreinstellung nicht wollen (also keine Kategorie „Allgemein“/“Uncategorized“ für unseren Beitrag eintragen möchten), müssen wir das extra angeben.
Dies kann z.B. mit wp_set_object_terms( $object_id, null, $taxonomy, $append );
erreicht werden.
- $object_id steht in unserem Beispiel für die $post_id;
- null ist der „Wert“, der eingetragen wird. Also: nichts.
- $taxonomy wäre hier ‚category‘, weil wir ja die Standardkategorie leeren möchten.
- $append ist standardmäßig bei allen hier verwendeten Funktionen false und kann daher weggelassen werden. Wir möchten ja nicht „nichts“ an den Standard anhängen.