Categorieën (WordPress): verschil tussen versies
(21 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 1: | Regel 1: | ||
+ | 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 == | == Algemeen == | ||
=== Taalspecifiek === | === Taalspecifiek === | ||
− | Taxons zijn taal-specifiek. Als je bv. een Duits | + | 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) === | === Taxonpagina (archives page) === | ||
Regel 10: | Regel 12: | ||
* WooCommerce Attribuut-taxons hebben echter niet zo'n eigen pagina. | * 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: | ||
{| | {| | ||
|[[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]] | ||
− | |[[file:20190412-1702.png|thumb|Categorie-taxonomieën: | + | |[[file:20190412-1702.png|thumb|Categorie-taxonomieën: Een impressie. Tabel <code>wp_links</code> wordt in mijn ervaring nooit gebruikt. Daarnaast denk ik dat tabel <code></code> cruciaal is in zo'n overzicht [https://code.tutsplus.com/tutorials/understanding-and-working-with-taxonomies-and-terms-in-wordpress--cms-21051]]] |
|} | |} | ||
− | === | + | === wp_term_taxonomy === |
+ | |||
+ | * Tabel <code>wp_term_taxonomy</code> is vermoedelijk de centrale tabel rondom taxonomieën waarbij elke rij een taxon representeert | ||
+ | * Additionele info per taxon, staat in tabel <code>wp_terms</code>, gelinkt via sleutel <code>term_id</code> | ||
+ | * Vreemd genoeg is er geen tabel met algemene informatie per taxonomy. Deze tabel <code>wp_term_taxonomy</code> komt het dichtst in de buurt van zo'n tabel. | ||
+ | |||
+ | Velden: | ||
+ | |||
+ | # <code>term_taxonomy_id</code> - Primaire sleutel van deze tabel | ||
+ | # <code>term_id</code> - Taxon-id - PK voor tabel <code>wp_terms</code> | ||
+ | # <code>taxonomy</code> - Naam van de taxonomie waar deze taxon deel van uitmaakt. Merk op dat er geen tabel is met algemene inf | ||
+ | # <code>description</code> - Titel op de shoppagina voor de betreffende categorie. Soms bevat dit veld ''serialised data'', maar dat lijkt niet het geval te zijn als er een 'reguliere' titel is ingevoerd - Zie schermafdrukken hieronder | ||
+ | # <code>parent</code> - Parenteel-taxon (is dat Nederlands?). Voor 'top-level' taxons heeft dit veld de 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>]] | ||
+ | |[[file:20220827-1041.png|thumb|Voorbeeld <code>description</code>-veld als titel op een shoppagina]] | ||
+ | |} | ||
=== wp_terms === | === wp_terms === | ||
− | Tabel <code>wp_terms</code> bevat alle taxons | + | Tabel <code>wp_terms</code> bevat additionele informatie voor alle taxons in alle taxonomieën en voor alle talen, en is min-of-meer een uitbreiding van tabel <code>wp_term_taxonomy</code>. Waarom deze aparte tabel? Waarschijnlijk om historische redenen |
{| | {| | ||
Regel 32: | Regel 49: | ||
|} | |} | ||
− | === | + | === wp_termmeta === |
+ | |||
+ | * Tabel <code>wp_termmate</code> bevat meta-data voor taxons, vergelijkbaar met hoe tabel <code>wp_postmeta</code> meta-data voor ''posts'' bevat | ||
+ | * Het is oa. bedoeld voor programmeurs die additionele gegevens willen bijhouden, bv. SEO-teksten voor gebruik op shoppagina's die horen bij bepaalde product_cat-taxons. | ||
+ | |||
+ | === wp_term_relationships === | ||
+ | |||
+ | * Tabel <code>wp_term_relationships</code> is een ''tussentabel'' die taxons associëert met WordPress-objecten zoals pagina's of producten | ||
+ | * Deze tabel heeft een samengestelde primaire sleutel: <code>object_id</code>+<code>term_taxonomy_id</code>. | ||
− | + | === wp_options === | |
− | + | Incidenteel bevat tabel <code>wp_options</code> additionele informatie over taxonomieën, bijvoorbeeld instellingen. | |
− | |||
− | |||
− | |||
− | |||
− | |||
{| | {| | ||
− | |[[file: | + | |[[file:20220827-1115.png|thumb|Voorbeeld van een webwinkel: Tabel <code>wp_options</code> bevat slechts twee rijen die betrekking hebben op de ''product_cat''-taxonomie]] |
|} | |} | ||
− | === | + | == Vertalen == |
+ | |||
+ | Hoe vertaal je een complete product_cat-taxonomie? Laatste ervaringen zomer 2022: | ||
+ | |||
+ | === Taxon-namen & -slugs === | ||
+ | |||
+ | De namen en slugs van taxons worden bijgehouden in tabel ''wp_terms''. | ||
− | + | Tot op heden heb ik vertalen van namen & slugs van taxons, rechtstreeks in SQL gedaan: Ik heb nog geen effectieve manier gevonden om dat in bulk via WP-CLI te doen. In SQL kan ik duizende taxons in een seconde vertalen. Via WP-CLI moet ik vermoedelijk voor elke taxon apart een match gaan doen. Dat duurt vermoedelijk uren. | |
− | |||
− | === | + | === Taxon-beschrijvingen === |
− | + | Taxon-beschrijvingen worden bijgehouden in tabel | |
− | |||
− | |||
== Categorieën verwijderen == | == Categorieën verwijderen == | ||
Nog niet gelukt. Zie [[PHP-API (WordPress)#get_categories | PHP-API » get_categories]] | Nog niet gelukt. Zie [[PHP-API (WordPress)#get_categories | PHP-API » get_categories]] | ||
+ | |||
+ | == Zie ook == | ||
+ | |||
+ | * [[Categories & SEO (WordPress)]] | ||
+ | * [[Product cat-taxonomieën (WordPress)]] | ||
+ | * [[Taxonomieën (WordPress)]] |
Huidige versie van 27 aug 2022 om 11:16
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 waarbij elke rij een taxon representeert - Additionele info per taxon, staat in tabel
wp_terms
, gelinkt via sleutelterm_id
- Vreemd genoeg is er geen tabel met algemene informatie per taxonomy. Deze tabel
wp_term_taxonomy
komt het dichtst in de buurt van zo'n tabel.
Velden:
term_taxonomy_id
- Primaire sleutel van deze tabelterm_id
- Taxon-id - PK voor tabelwp_terms
taxonomy
- Naam van de taxonomie waar deze taxon deel van uitmaakt. Merk op dat er geen tabel is met algemene infdescription
- Titel op de shoppagina voor de betreffende categorie. Soms bevat dit veld serialised data, maar dat lijkt niet het geval te zijn als er een 'reguliere' titel is ingevoerd - Zie schermafdrukken hieronderparent
- Parenteel-taxon (is dat Nederlands?). Voor 'top-level' taxons heeft dit veld de waarde0
count
- Aantal elementen (denk ik - Nu niet al te belangrijk).
wp_terms
Tabel wp_terms
bevat additionele informatie voor alle taxons in alle taxonomieën en voor alle talen, en is min-of-meer een uitbreiding van tabel wp_term_taxonomy
. Waarom deze aparte tabel? Waarschijnlijk om historische redenen
wp_termmeta
- Tabel
wp_termmate
bevat meta-data voor taxons, vergelijkbaar met hoe tabelwp_postmeta
meta-data voor posts bevat - Het is oa. bedoeld voor programmeurs die additionele gegevens willen bijhouden, bv. SEO-teksten voor gebruik op shoppagina's die horen bij bepaalde product_cat-taxons.
wp_term_relationships
- Tabel
wp_term_relationships
is een tussentabel die taxons associëert met WordPress-objecten zoals pagina's of producten - Deze tabel heeft een samengestelde primaire sleutel:
object_id
+term_taxonomy_id
.
wp_options
Incidenteel bevat tabel wp_options
additionele informatie over taxonomieën, bijvoorbeeld instellingen.
Vertalen
Hoe vertaal je een complete product_cat-taxonomie? Laatste ervaringen zomer 2022:
Taxon-namen & -slugs
De namen en slugs van taxons worden bijgehouden in tabel wp_terms.
Tot op heden heb ik vertalen van namen & slugs van taxons, rechtstreeks in SQL gedaan: Ik heb nog geen effectieve manier gevonden om dat in bulk via WP-CLI te doen. In SQL kan ik duizende taxons in een seconde vertalen. Via WP-CLI moet ik vermoedelijk voor elke taxon apart een match gaan doen. Dat duurt vermoedelijk uren.
Taxon-beschrijvingen
Taxon-beschrijvingen worden bijgehouden in tabel
Categorieën verwijderen
Nog niet gelukt. Zie PHP-API » get_categories