Categorieën (WordPress)
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