Verstehen und Arbeiten mit Taxonomien und Begriffen in WordPress

Taxonomien führen WordPress über eine einfache Blogging-Plattform hinaus in die Bereiche eines CMS. 

Aber wie werden sie in der Datenbank gespeichert??

Taxonomien und Begriffe sind eine leistungsstarke WordPress-Funktion, mit der Sie Ihren Websites mehr Flexibilität verleihen können. Sie beziehen sich auf zwei andere Inhaltstypen: Beiträge und Links. Die Datenbankstruktur bedeutet, dass es sich um eine Eins-zu-Viele-Beziehung handelt, bei der ein Beitrag mehrere Begriffe in mehreren Taxonomien enthalten kann und ein Begriff mehreren Beiträgen oder zugewiesen werden kann Links.

Ich beginne damit, sie zu definieren. Wie so viele Dinge in WordPress kann die Terminologie verwirrend sein!

Definitionen

Taxonomien

Eine Taxonomie ist ein System zum Kategorisieren oder Klassifizieren von Dingen, normalerweise hierarchisch. Die bekannteste Taxonomie ist die Linneanische Taxonomie, mit der Lebewesen klassifiziert werden.

In WordPress werden Taxonomien verwendet, um Ihre Daten zu klassifizieren und in Mengen und Teilmengen zu gruppieren.

WordPress enthält drei integrierte Taxonomien:

  • Kategorie
  • Etikett
  • Linkkategorie

Kategorien und Tags sind ein bisschen wie Posts und Seiten, da sie vom gleichen Inhaltstyp (Taxonomien) sind, sich jedoch standardmäßig anders verhalten, da Kategorien hierarchisch sind und Tags nicht.

Die Linkkategorie-Taxonomie funktioniert ähnlich wie Tags und könnte theoretisch für jeden Objekttyp verwendet werden. Standardmäßig wird sie jedoch nicht im Nachbearbeitungsbildschirm angezeigt und im Linkbearbeitungsbildschirm angezeigt, wenn Verknüpfungen aktiviert wurden.

Sie können mit benutzerdefinierten Taxonomien auch beliebig viele zusätzliche Taxonomien hinzufügen. Diese verhalten sich dann ähnlich wie Kategorien und Tags und haben Begriffe. Jede Ihrer Taxonomien hat dann den gleichen Status wie eine der integrierten Taxonomien. Dies ähnelt in gewisser Weise einem Vergleich zwischen Beiträgen und benutzerdefinierten Beitragstypen.

Bedingungen

Jede Taxonomie enthält Begriffe, die Sie zum Sortieren Ihrer Daten verwenden. Eine Kategorie ist nur ein Begriff in der Kategorie Taxonomie, und ein Tag ist ein Begriff in der Tag-Taxonomie. Wenn Sie Taxonomien erstellen, erstellen Sie Begriffe für Ihre Taxonomien entweder über das WordPress-Dashboard oder über die Funktion wp_insert_term ().

Begriffe können in Kombination mit benutzerdefinierten Abfragen sehr leistungsfähig sein: Sie können in Ihren Designs oder Plugins benutzerdefinierte Vorlagendateien erstellen, um Posts mit mehreren Begriffen anzuzeigen, nach Begriffen zu sortieren, Begriffe in Taxonomien zu identifizieren und vieles mehr.

Wie speichert WordPress Taxonomien und Begriffe

Wie ich im Tutorial zu Beziehungen zwischen Daten beschrieben habe, verwendet WordPress eine Viele-zu-Viele-Beziehung. Diese Beziehung wird mithilfe von drei Tabellen erstellt:

  • wp_term_relationships
  • wp_term_taxonomy
  • wp_terms

Diese Tabellen werden unten zusammen mit den Tabellen gezeigt, mit denen sie verknüpft sind, wp_posts und wp_links:

Lassen Sie uns einen Blick auf die einzelnen Tabellen und deren Funktionsweise werfen.

Die wp_terms-Tabelle

Das wp_terms Tabelle speichert alle einzelnen Begriffe für Ihre Kategorien, Tags, Link-Kategorien und benutzerdefinierte Taxonomien. Es hat nur vier Felder:

  • term_id ist die eindeutige ID für den Begriff
  • Name
  • Schnecke
  • term_group ist ein Feld, das derzeit nicht von WordPress verwendet wird, sodass Sie es ignorieren können.

Die Tabelle wp_term_taxonomy

Das wp_term_taxonomy Tabelle speichert mehr Daten zu Begriffen sowie zu den Taxomien, zu denen sie gehören. Es hat sechs Felder:

  • term_taxonomy_id speichert eine ID für den Datensatz in dieser Tabelle
  • term_id steht für die ID des Begriffs, verbunden mit seinem Datensatz in WP_TERS
  • Taxonomie ist der Name der Taxonomie, in der sich der Begriff befindet
  • Beschreibung
  • Elternteil bezieht sich auf den übergeordneten Begriff des Begriffs, wenn die Taxonomie hierarchisch ist und einen hat
  • Anzahl ist die Anzahl der Beiträge mit dem Begriff

In vielen WordPress-Installationen gibt es einen Eintrag in der wp_term_taxonomy Tabelle für jeden Begriff in der wp_terms Tabelle, aber in einigen Fällen haben Sie mehr als einen Datensatz für jeden Begriff. Dies geschieht, wenn Sie zwei Begriffe mit demselben Namen und Slug in verschiedenen Taxonomien erstellen. Dies bedeutet, dass Sie eine Abfrage erstellen können, um Beiträge mit diesem Begriff in mehreren Taxonomien auszugeben.

Dies bedeutet, dass die Beziehung zwischen diesen beiden Tabellen Eins-zu-Viele ist: ein Datensatz in der wp_terms Tabelle kann mit mehreren Datensätzen im verknüpft werden wp_term_taxonomy Tabelle, aber jeder Datensatz in wp_term_taxonomy ist nur mit einem Datensatz in verknüpft wp_terms.

Die wp_term_relationships-Tabelle

Das wp_term_relationships Tabelle ist entscheidend, um die Viele-zu-Viele-Beziehung zwischen Objekten und Begriffen herzustellen. Es hat nur drei Felder:

  • Objekt Identifikation ist verbunden mit post_id in dem wp_posts Tisch oder link_id in dem wp_links Tabelle
  • term_taxonomy_id ist mit dem gleichen Feld in der wp_term_taxonomy Tabelle
  • term_order ist die Reihenfolge, in der Begriffe zu einem Objekt hinzugefügt wurden. Wird nur verwendet, wenn Sie das Sortierargument bei der Registrierung der Taxonomie als wahr angegeben haben. Der Standardwert ist false und der Standardwert für dieses Feld ist 0.

Weil jedes Objekt mit mehreren Datensätzen in der Datenbank verknüpft werden kann wp_term_relationships Tabelle, und so kann jeder Begriff, so entsteht die Viele-zu-Viele-Beziehung.

Zusammenfassung

Die Beziehung zwischen Objekten (d. H. Posts und Links) und Begriffen ist eine sehr starke Beziehung, zum Teil weil es die einzige Viele-zu-Viele-Beziehung ist, die von WordPress verwendet wird. 

Wenn Sie wissen, wie diese Beziehung funktioniert und wo die Schlüsseldaten gespeichert sind, können Sie die Funktionsweise von Taxonomien und Begriffen verstehen und die damit verbundenen Funktionen verwenden.