Categorieën (WordPress): verschil tussen versies
Regel 14: | Regel 14: | ||
== Database-model == | == Database-model == | ||
− | + | Ik vind het geweldig om via de WP-CLI-API te werken, maar soms gaat er niets boven rechtstreeks in SQL werken. En dan heb je het database-model nodig: | |
− | |||
{| | {| | ||
|[[file:20190412-1624.png|thumb|De vier tabellen die een rol spelen rondom Categorie-taxonomieën. Merk op dat WordPress ''bijna nooit'' relaties defineert tussen tabellen]] | |[[file:20190412-1624.png|thumb|De vier tabellen die een rol spelen rondom Categorie-taxonomieën. Merk op dat WordPress ''bijna nooit'' relaties defineert tussen tabellen]] | ||
Regel 21: | Regel 20: | ||
|} | |} | ||
− | === | + | === wp_term_taxonomy === |
+ | |||
+ | Tabel <code>wp_term_taxonomy</code> is vermoedelijk de centrale tabel rondom taxonomieën. Deze geeft aan bij welke taxonomie een taxon hoort, verschaft additionele informatie, en regelt nog een paar dingen. Velden: | ||
+ | |||
+ | # <code>term_taxonomy_id</code> - Primaire sleutel | ||
+ | # <code>term_id</code> - Taxon waar dit record betrekking op heeft | ||
+ | # <code>taxonomy</code> - Naam van de taxonomie waar deze taxon deel van uitmaakt | ||
+ | # <code>description</code> - Aanvullende informatie. Denk daarbij aan ''serialised data'' voor niet-publieke taxons | ||
+ | # <code>parent</code> - Parenteel-taxon (is dat Nederlands?). Niet-hierarchische taxonomie? Dan waarde <code>0</code> | ||
+ | # <code>count</code> - Aantal elementen (denk ik - Nu niet al te belangrijk). | ||
− | + | {| | |
+ | |[[file:20190412-1638.png|thumb|Voorbeeld van de inhoud van tabel <code>wp_term_taxonomy</code>]] | ||
+ | |} | ||
=== wp_terms === | === wp_terms === | ||
Regel 44: | Regel 54: | ||
* Alsof deze tabel een "extra'tje" is, voor data die niet gemakkelijk in <code>wp_terms_taxonomy</code> past (bv. binaire data, dus data met een entiteit- en een waardeveld) | * Alsof deze tabel een "extra'tje" is, voor data die niet gemakkelijk in <code>wp_terms_taxonomy</code> past (bv. binaire data, dus data met een entiteit- en een waardeveld) | ||
* Voorbeeld: De afbeelding en description voor een taxonpagina, vind je als twee losse records in deze tabel. | * Voorbeeld: De afbeelding en description voor een taxonpagina, vind je als twee losse records in deze tabel. | ||
+ | |||
+ | === wp_options === | ||
+ | |||
+ | Tabel <code>wp_options</code> bevat algemene informatie over taxonomieën, bv. bij welk type objecten ze horen: Blijkbaar mag een taxonomie met maar één klasse van objecten geassociëerd zijn. | ||
== Categorieën verwijderen == | == Categorieën verwijderen == |
Versie van 27 aug 2022 10:22
Dit artikel behandelt de generieke Category-taxonomie-functionaliteit van WordPress. WooCommerce maakt gebruik van eigen instanties van deze generieke Catalog-functionaleit, die ik product_cat noem. Voor meer over product_cat, zie dit artikel: Product cat-taxonomieën (WordPress).
Algemeen
Taalspecifiek
Taxons zijn taal-specifiek. Als je bv. een Duits product probeert toe te voegen aan een Nederlandstalige categorie, wordt er een kopie gemaakt van die categorie in het Duits (automatisch gekoppeld aan de NL-categorie!), en dat product wordt daar toegevoegd
Taxonpagina (archives page)
- Elke categorie-taxon heeft z'n eigen pagina. Dus z'n eigen Archives page. Standaard kun je een afbeelding en description-tekst per taxon toevoegen. Het hangt van het thema af of het getoond wordt - Altijd doen!
- WooCommerce Attribuut-taxons hebben echter niet zo'n eigen pagina.
Database-model
Ik vind het geweldig om via de WP-CLI-API te werken, maar soms gaat er niets boven rechtstreeks in SQL werken. En dan heb je het database-model nodig:
wp_term_taxonomy
Tabel wp_term_taxonomy
is vermoedelijk de centrale tabel rondom taxonomieën. Deze geeft aan bij welke taxonomie een taxon hoort, verschaft additionele informatie, en regelt nog een paar dingen. Velden:
term_taxonomy_id
- Primaire sleutelterm_id
- Taxon waar dit record betrekking op heefttaxonomy
- Naam van de taxonomie waar deze taxon deel van uitmaaktdescription
- Aanvullende informatie. Denk daarbij aan serialised data voor niet-publieke taxonsparent
- Parenteel-taxon (is dat Nederlands?). Niet-hierarchische taxonomie? Dan waarde0
count
- Aantal elementen (denk ik - Nu niet al te belangrijk).
wp_terms
Tabel wp_terms
bevat alle taxons, voor alle taxonomieën, voor alle talen. Welke taxon je ook zoekt: Het staat altijd in deze tabel.
wp_term_relationships
- Tabel
wp_term_relationships
is een tussentabel waardoor het mogelijk is om meerdere objecten te koppelen met meerdere taxons en vice versa. Ik geloof dat je altijd een tussentabel nodig hebt als je een veel-op-veel-relatie wilt hebben - Ik heb de indruk dat deze tabel een samengestelde primaire sleutel heeft:
object_id
+term_taxonomy_id
.
wp_termmeta
- Tabel
wp_termmate
bevat aanvullende taxon-gerelateerde info - Alsof deze tabel een "extra'tje" is, voor data die niet gemakkelijk in
wp_terms_taxonomy
past (bv. binaire data, dus data met een entiteit- en een waardeveld) - Voorbeeld: De afbeelding en description voor een taxonpagina, vind je als twee losse records in deze tabel.
wp_options
Tabel wp_options
bevat algemene informatie over taxonomieën, bv. bij welk type objecten ze horen: Blijkbaar mag een taxonomie met maar één klasse van objecten geassociëerd zijn.
Categorieën verwijderen
Nog niet gelukt. Zie PHP-API » get_categories