Categorieën (WordPress): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 14: Regel 14:
 
== Database-model ==
 
== Database-model ==
  
'' Dit hoofdstuk is incompleet.''
+
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_options ===
+
=== 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).
  
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.
+
{|
 +
|[[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:

De vier tabellen die een rol spelen rondom Categorie-taxonomieën. Merk op dat WordPress bijna nooit relaties defineert tussen tabellen
Categorie-taxonomieën: De drie belangrijkste tabellen + hun relatie [1]

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:

  1. term_taxonomy_id - Primaire sleutel
  2. term_id - Taxon waar dit record betrekking op heeft
  3. taxonomy - Naam van de taxonomie waar deze taxon deel van uitmaakt
  4. description - Aanvullende informatie. Denk daarbij aan serialised data voor niet-publieke taxons
  5. parent - Parenteel-taxon (is dat Nederlands?). Niet-hierarchische taxonomie? Dan waarde 0
  6. count - Aantal elementen (denk ik - Nu niet al te belangrijk).
Voorbeeld van de inhoud van tabel wp_term_taxonomy

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.

Voorbeeld van de inhoud.pll staat vermoedelijk voor Polylang. Ik weet alleen niet waar die taxons voor zijn
Ander voorbeeld. De taxons 10 mm en 20 mm hebben betrekking op de attribute Dimensie-1 (zie eerder voorbeeld)

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

Zie ook