Product cat-Taxonomieën (WordPress): verschil tussen versies
Regel 42: | Regel 42: | ||
Het ID van de ''parent'' kun je aflezen in tabel <code>wp_terms</code>. Je kunt het ook zien als je in het betreffende scherm van de site ''hovered'' over de term. Daarnaast is er vermoedelijk een PHP-API-functie om het te achterhalen. | Het ID van de ''parent'' kun je aflezen in tabel <code>wp_terms</code>. Je kunt het ook zien als je in het betreffende scherm van de site ''hovered'' over de term. Daarnaast is er vermoedelijk een PHP-API-functie om het te achterhalen. | ||
+ | |||
+ | == Afbeeldingen associëren met taxons == | ||
+ | |||
+ | Aan een taxon kun je een afbeelding toevoegen. Maar hoe doe je dat in PHP? | ||
+ | |||
+ | {| | ||
+ | |[[file:20190809-1156.png|thumb|Details van deze afbeelding in <code>wp_postmeta</code>]] | ||
+ | |[[file:20190809-1157.png|thumb|Associate tussen afbeelding en posting in <code>wp_termmeta</code>]] | ||
== Labeling == | == Labeling == |
Versie van 9 aug 2019 11:57
Titels van artikelen mogen geen underscores bevatten, en ze moeten beginnen met een hoofdletter. De titel van dit hoofdstuk had moeten zijn product_cat-Taxonomieën (WordPress).
product_cat is een instantie van de Categorie-taxonomie, bedoeld voor de externe indeling/ontsluiting van WooCommerce-producten.
Taxonomieën & hoofdtaxons aanmaken
In het voorbeeld hiernaast zie je vier hoofdtaxons. Kun je zeggen dat er vier taxonomieën zijn? Dat zou je kunnen zeggen, maar ik vind het intuïtiever om te spreken van één taxonomie, met meerdere hoofdtaxons: Bij het automatiseren is dat namelijk de manier waarop je dit moet programmeren: product_cat is de taxonomie. Dit is hoe je zo'n hoofdtaxon aanmaakt mbv. de PHP-API:
############################################################### # product_cat "Bosch" ############################################################### # wp_insert_term ( 'Bosch', # Taxon-naam 'product_cat', # product_cat is altijd naam van de taxonomie array ( 'description' => 'Koolborstels voor Bosch-handgereedschap' ) );
Subtaxons aanmaken
In dezelfde afbeelding heeft hoofdtaxon Merk één subtaxon, genaamd Motorola. Dit maak je als volgt aan in code. Daarin kun je zien dat Merk het parenteel is van Motorola:
# Test: Insert a Merk-taxon ########################### # $term_array = array ( 'description' => 'Alle xxx voor dit merk', 'parent' => 27 ); wp_insert_term("Motorola", "product_cat", $term_array); # product_cat is de naam van de taxonomie
Het ID van de parent kun je aflezen in tabel wp_terms
. Je kunt het ook zien als je in het betreffende scherm van de site hovered over de term. Daarnaast is er vermoedelijk een PHP-API-functie om het te achterhalen.
Afbeeldingen associëren met taxons
Aan een taxon kun je een afbeelding toevoegen. Maar hoe doe je dat in PHP?
LabelingHoe noem je het associëren van producten met taxons? Daar is vast een goede term voor
Mbv. wp_set_object_terms("0901", "Bosch", "product_cat"); en hier hetzelfde, maar dan ahv. de wp_set_object_terms("0901", 104, "product_cat"); Voorbeeld: Alle producten associëren met een fabrikant De volgende stap: Hoe zorg ik dat alle producten die een element zijn van taxon Bosch, als zodanig geassociëerd worden? DWH-SQL-code: # # Connect all relevant products with taxon "Bosch" ###################################################################################################### # ###################################################################################################### # Create php code ###################################################################################################### # drop table if exists tmp; create table tmp select distinct sku from brush_tool_asein_201808 where tool_brand like "Bosch" order by sku; call add_column_unless_exists("tmp", "exec", "text"); update tmp set exec = concat ( "wp_set_object_terms(", char(34), sku, char(34), ", ", char(34), "Bosch", char(34), ", ", char(34), "product_cat", char(34), ");" ); select * from tmp; ###################################################################################################### # Export code ###################################################################################################### # call export_save_php("taxonomy_terms", "tmp", "exec", "/home/strompf/www/kbo3.dvb"); Een deel van het resulterende script: <?php require_once("/home/strompf/www/kbo3.dvb/wp-load.php"); wp_set_object_terms("0100", "Bosch", "product_cat"); wp_set_object_terms("0101", "Bosch", "product_cat"); wp_set_object_terms("0102", "Bosch", "product_cat"); wp_set_object_terms("0103", "Bosch", "product_cat"); wp_set_object_terms("0104", "Bosch", "product_cat"); wp_set_object_terms("0105", "Bosch", "product_cat"); wp_set_object_terms("0107", "Bosch", "product_cat"); wp_set_object_terms("0108", "Bosch", "product_cat"); Dit bestand uitvoeren met let op -f: php -f ./05-taxonomy_terms-20190413-1627 Leuke extra: De local working directory hoeft niet te worden aangepast! Dankzij het require_once-commando, wordt het script automatisch uitgevoerd binnen de juiste WordPress-site. Zie ookBronnenAfbeeldingen associëren met taxons
|