Categorieën (WordPress): verschil tussen versies
(Jeroen Strompf heeft pagina Categorieën (WordPress) hernoemd naar Taxonomieën (WordPress)) |
|||
(4 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 1: | Regel 1: | ||
− | # | + | == Algemeen == |
+ | |||
+ | === Taalspecifiek === | ||
+ | |||
+ | Taxons zijn taal-specifiek. Als je bv. een Duits produc.t 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.'' | ||
+ | |||
+ | {| | ||
+ | |[[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-1702.png|thumb|Categorie-taxonomieën: De drie belangrijkste tabellen + hun relatie [https://code.tutsplus.com/tutorials/understanding-and-working-with-taxonomies-and-terms-in-wordpress--cms-21051]]] | ||
+ | |} | ||
+ | |||
+ | === 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. | ||
+ | |||
+ | === wp_terms === | ||
+ | |||
+ | Tabel <code>wp_terms</code> bevat alle taxons, voor alle taxonomieën, voor alle talen. Welke taxon je ook zoekt: Het staat altijd in ''deze'' tabel. | ||
+ | |||
+ | {| | ||
+ | |[[file:20190412-1550.png|thumb|Voorbeeld van de inhoud.''pll'' staat vermoedelijk voor ''Polylang''. Ik weet alleen niet waar die taxons voor zijn]] | ||
+ | |[[file:20190415-2257.png|thumb|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 <code>wp_term_taxonomy</code> 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_term_relationships === | ||
+ | |||
+ | * Tabel <code>wp_term_relationships</code> 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: <code>object_id</code>+<code>term_taxonomy_id</code>. | ||
+ | |||
+ | === wp_termmeta === | ||
+ | |||
+ | * Tabel <code>wp_termmate</code> bevat aanvullende taxon-gerelateerde info | ||
+ | * 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. | ||
+ | |||
+ | == Categorieën verwijderen == | ||
+ | |||
+ | Nog niet gelukt. Zie [[PHP-API (WordPress)#get_categories | PHP-API » get_categories]] | ||
+ | |||
+ | == Zie ook == | ||
+ | |||
+ | * [[Taxonomieën (WordPress)]] |
Versie van 18 jul 2019 10:18
Algemeen
Taalspecifiek
Taxons zijn taal-specifiek. Als je bv. een Duits produc.t 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.
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.
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:
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_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