Odpowiedzi:
Jeśli zajrzysz do dokumentacji Wordpress, znajdziesz taksonomie Wordpress
term_id
wystąpi teraz tylko raz w term_taxonomy
tabeli (zanim kolumna nie była unikalna, a warunki mogły być współużytkowane przez taksonomie). To może nadal ewoluować w przyszłości, w oparciu o mapę drogową taksonomii . Jedną z nich jest połączenie tabel terminów i terminologii taksonomii .
Kodeks mówi:
Co to znaczy?
Termin to słowo. Może należeć do taksonomii, takiej jak tagi, kategorie lub taksonomia niestandardowa. Chodzi o to, że może istnieć kilka taksonomii zawierających ten sam termin.
Załóżmy, że masz termin „tucz”. To słowo ma numer identyfikacyjny. To jest term_id. Nie zależy to od sposobu użycia tego słowa, tj. W jakich taksonomiach pojawia się ten termin.
Teraz słowo „tucz” jako znacznik pocztowy również ma numer. To jest term_taxonomy_id. Odpowiada „znacznikowi pocztowemu„ tucz ”.
Może masz także kategorię „tucz”. Podczas gdy term_id jest taki sam, term_taxonomy_id dla „kategorii tucz” jest inny.
Ponieważ jest to część większego zrozumienia projektu, opiszę go jako całość ... :)
W WP 4.5.3 nadal są wszystkie te tabele (opowiem o nich bez prefiksu):
Ścieżka do uzyskania czytelnych nazw terminów prowadzi przez wszystkie.
publikuje
tutaj główny identyfikator ID
- identyfikator posta (dowolnego typu)
term_relationships
przechowuje pary:
object_id
- może być posts.ID
(ale nie musi)
term_taxonomy_id
- NIE jest to identyfikator terminu (kategoria), ale identyfikator RELACJI między terminem (kategoria) a taksonomią („typ kategorii”)
term_taxonomy
główny identyfikator tutaj jest term_taxonomy_id
opisany powyżej ^^
inne ważne kolumny:
term_id
- identyfikator terminu (kategoria)
taxonomy
- przechowuje taksonomię terminu („typ kategorii”)
To może wydawać się zabawne, ale początkowo zamierzano dodać możliwość, aby terminy miały więcej taksonomii (co w niektórych przypadkach może mieć sens).
terminy
głównym identyfikatorem tutaj jest term_id
- identyfikator kategorii,
inne ważne kolumny to:
name
- czytelna nazwa kategorii, np. „Gatunki muzyczne”
slug
- informacja o użytkowniku, np. w adresie URL
Tak więc brutalne demonstrowanie SQL, aby
uzyskać wszystkie opublikowane posty i wszystkie ich kategorie z nazwami kategorii,
może wyglądać tak (dodaj prefiksy do tabel podczas testowania na własnej WP DB):
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
Termin sam w sobie nie jest kategorią ani znacznikiem. Należy podać kontekst za pomocą tabeli term_taxonomy.
Tabela term_taksonomia umieszcza termin w taksonomii. Z tego powodu termin jest kategorią , znacznikiem lub częścią niestandardowej taksonomii (lub kombinacji taksonomii).
term_id
to identyfikator terminu w tabeli warunków.
term_taxonomy_id
jest unikalnym identyfikatorem terminu + para taksonomii.
term_id
Jest zawsze wyjątkowy podobnie jak term_taxonomy_id
. Oba mają Auto Increment
strukturę tabel.
Tabela wp_term_taxonomy
dba na przykład, że kategoria jest tworzony, więc wordpress może kolidować z nim np woocommerce zastosowań: product_tag
, product_type
, product_cat
, wszystkie z nich są tak zwane niestandardowe taksonomii. Ta tabela również wiąże strukturę nadrzędną / podrzędną. Z jego kolumną parent
.
Ostatnia tabela, term_relationships, odnosi obiekty, takie jak posty lub linki, do term_taxonomy_id z tabeli term_taxonomy.
Jeśli ponownie wybierzemy Woocommerce jako przykład, ta tabela łączy typ postu products
z ich taksonomią product_cat
, która zawiera pewną liczbę np. Komputerów, które są oczywiście pobierane z tabeli wp_terms
. Tabela ta zawiera term_id
, name
, slug
i term_group
. (term_group, której osobiście nigdy nie użyłem)
Mam nadzieję, że powyższe uwidacznia nieco więcej na temat różnic i sposobu, w jaki Wordpress używa tych tabel.