Was ist der Unterschied zwischen term_id und term_taxonomy_id?

Der Titel sagt alles. Im Moment bekomme ich in meinen benutzerdefinierten Taxonomien die Begriffe mit dem Begriff id und taxonomy name.

Dachte, diese Frage wäre schon vorher gestellt worden, kann sie aber nirgends finden! Ich dachte nur, ich würde fragen, ob jemand Antworten hat.

Solutions Collecting From Web of "Was ist der Unterschied zwischen term_id und term_taxonomy_id?"

Wenn Sie in die WordPress-Dokumentation schauen, finden Sie WordPress Taxonomies

  • term_id ist die ID eines Terms in der Terms-Tabelle
  • term_taxonomy_id ist eine eindeutige ID für das Begriff + Taxonomie-Paar.

Der Codex sagt:

  • term_id ist die ID eines Terms in der Terms-Tabelle
  • term_taxonomy_id ist eine eindeutige ID für das Begriff + Taxonomie-Paar

Was bedeutet das?

Ein Begriff ist ein Wort. Es kann zu einer Taxonomie gehören, z. B. zu Tags, Kategorien oder einer benutzerdefinierten Taxonomie. Die Sache ist: Es kann mehrere Taxonomien geben, die den gleichen Begriff enthalten.

Nehmen wir an, Sie haben einen Begriff namens “Mast”. Dieses Wort hat eine ID-Nummer. Dies ist der Begriff_id. Es kommt nicht darauf an, wie dieses Wort verwendet wird, dh in welchen Taxonomien der Begriff erscheint.

Jetzt hat das Wort “Mast” als Post-Tag auch eine Nummer. Dies ist der Term_taxonomy_id. Es entspricht “dem Post-Tag” Mast “”.

Vielleicht haben Sie auch eine Kategorie namens “Mast”. Während der Term_id gleich ist, ist der Begriff_taxonomy_id für “die Kategorie” Mast “” anders.

Da dies Teil eines größeren Verständnisses des Designs ist, werde ich es als Ganzes beschreiben … 🙂

In WP 4.5.3 gibt es noch all diese Tabellen (ich werde ohne Präfix darüber sprechen):

  • Beiträge
  • term_relationships
  • term_taxonomie
  • Begriffe

Der Pfad, um die lesbaren Namen der Post-Terme zu erhalten, geht alle durch.

Beiträge
Der Hauptidentifizierer ist ID – eine ID eines Posts (egal welcher Art)

term_relationships
speichert Paare von:
object_idkann posts.ID (muss aber nicht sein)
term_taxonomy_id – dies ist NICHT die ID eines Begriffs (Kategorie), sondern eine ID der BEZIEHUNG zwischen einem Begriff (Kategorie) und einer Taxonomie (“Kategorie-Typ”)

term_taxonomie
Der Hauptidentifizierer ist hier der term_taxonomy_id ^ oben
weitere wichtige Spalten:
term_ideine ID eines Begriffs (Kategorie)
taxonomy – speichert die taxonomy des Begriffs (“Kategorietyp”)

Dies mag lustig erscheinen, aber die ursprüngliche Absicht war, die Fähigkeit für Begriffe zu erweitern, um mehr Taxonomien zu haben (was in manchen Fällen Sinn ergeben kann).

Begriffe
Der Hauptidentifizierer ist hier der term_id – eine ID einer Kategorie
Weitere wichtige Spalten sind hier:
name – lesbarer Kategoriename zB “Music Genres”
slug – der Slug eines Begriffs, der zB in URL verwendet werden kann

Also das brutale Demonstrieren von SQL zu
Erhalte alle veröffentlichten Posts und alle ihre Kategorien mit den Namen der Kategorien
könnte so aussehen (Hinzufügen von Präfixen zu Tabellen beim Testen auf Ihrer eigenen WP-database):

 SELECT * FROM posts #gets posts LEFT JOIN term_relationships #gets posts relationships to term_taxonomies ON(posts.ID=term_relationships.object_id) LEFT JOIN term_taxonomy #gets term_ids ON(term_relationships.term_taxonomy_id=term_taxonomy.term_taxonomy_id) LEFT JOIN terms #finally, gets terms' names ON(term_taxonomy.term_id=terms.term_id) WHERE ( (posts.post_status='publish') #optionally you can filter by a certain post_type: #AND #(posts.post_type='some_post_type') ) ORDER BY posts.ID ASC 

Ein Begriff ist keine Kategorie oder ein Tag für sich. Es muss Kontext über die Tabelle term_taxonomy gegeben werden.

Die term_taxonomy-Tabelle platziert einen Begriff innerhalb einer Taxonomie. Dies macht einen Begriff zu einer Kategorie , einem Tag oder Teil einer benutzerdefinierten Taxonomie (oder zu einer Kombination von Taxonomien).

term_id ist die ID eines Terms in der Terms-Tabelle.

term_taxonomy_id ist eine eindeutige ID für das Begriff + Taxonomie-Paar.

Die term_id ist immer genau wie die term_taxonomy_id . Beide haben ein Auto Increment in der Tabellenstruktur.

Die Tabelle wp_term_taxonomy stellt sicher, dass zum Beispiel eine Kategorie erstellt wird, so dass WordPress diese beeinflussen kann, zB Woocommerce verwendet: product_tag , product_type , product_cat , alle von ihnen sind die sogenannten benutzerdefinierten Taxonomien. Diese Tabelle bindet auch die Eltern / Kinder-Struktur. Mit seinem parent .

Die finale Tabelle term_relationships verknüpft Objekte wie Posts oder Links mit einer term_taxonomy_id aus der term_taxonomy-Tabelle.

Wenn wir als Beispiel wieder Woocommerce auswählen, verbindet diese Tabelle products product_cat mit ihrer Taxonomie product_cat , die eine product_cat , zB Computer, enthält, die natürlich aus der Tabelle wp_terms abgerufen wp_terms . Diese Tabelle enthält die term_id , ” name , ” slug und ” term_group . (term_group habe ich persönlich noch nie benutzt)

Hoffentlich macht das Obige die Dinge ein wenig klarer über die Unterschiede und wie WordPress diese Tabellen verwendet.