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 alle diese Tabellen (ich werde ohne Präfix darüber sprechen ):
- Beiträge
- term_relationships
- term_taxonomy
- Begriffe
Der Pfad zum Abrufen der lesbaren Namen der Post-Terms geht durch alle.
Posts,
deren Hauptidentifikator hier ist ID
- eine ID eines Posts (jeglicher Art)
term_relationships
speichert Paare von:
object_id
- kann sein posts.ID
(aber nicht nicht sein müssen)
term_taxonomy_id
- das ist NICHT - ID eines Begriffs (Kategorie) , sondern eine ID von BEZIEHUNG zwischen einer Laufzeit (Kategorie) und Taxonomie ( „Kategorie - Typ“)
term_taxonomy
der Hauptidentifikator ist term_taxonomy_id
hier oben beschrieben ^^
andere wichtige Spalten:
term_id
- eine ID eines Begriffs (Kategorie)
taxonomy
- speichert die Taxonomie des Begriffs ("Kategorietyp")
Dies mag lustig erscheinen, aber die ursprüngliche Absicht war es, die Fähigkeit von Begriffen hinzuzufügen, mehr Taxonomien zu haben (was in einigen Fällen sinnvoll sein kann).
Begriffe
Der Hauptidentifikator hier ist die term_id
- ID einer Kategorie.
Weitere wichtige Spalten hier sind:
name
- lesbarer Kategoriename, z. B. "Musikgenres"
slug
- der Slug eines Begriffs, der z. B. in einer URL verwendet werden kann
Das brutale Demonstrieren von SQL,
um alle veröffentlichten Posts und alle ihre Kategorien mit Kategorienamen zu erhalten,
könnte also so aussehen (fügen Sie Tabellen Präfixe hinzu, wenn Sie in Ihrer eigenen WP-Datenbank testen):
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