Categorieën (WordPress)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen

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

Dit hoofdstuk is incompleet. Daarnaast blijkt kennis van het achterliggende database-model van weinig belang te zijn, als je werkt via de gebruikelijk API's.

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_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.

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_taxonomy

Vermoedelijk is dit de centrale tabel rondom taxonomieën, en niet wp_terms - Deze laatste is vrij doods. Tabel wp_term_taxonomy 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_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.

Categorieën verwijderen

Nog niet gelukt. Zie PHP-API » get_categories

Zie ook