Opbouw van slugs voor productcategorieën.

Voor de vindbaarheid van je producten is het verstandig om de producten in categorieën in te delen. Elke categorie in WooCommerce heeft een naam en een slug.

Wat is het verschil tussen de naam en de slug?

Een naam wordt gebruikt voor de weergave. Hierin worden speciale tekens en hoofdletters netjes getoond zoals we die gewend zijn om te lezen. Een categorienaam kan bijvoorbeeld zijn “Heren- & Damesschoenen“. Een categorienaam mag meer dan één keer voor komen.

De slug wordt in WordPress en WooCommerce gebruikt om een SEO-vriendelijke link te kunnen maken. Hierbij zijn onder andere speciale tekens en hoofdletters niet wenselijk. De speciale tekens worden daarom in een slug vervangen door vriendelijkere karakters. De categorienaam “Heren- & Damesschoenen” zal bijvoorbeeld worden omgezet naar de slug “heren-damesschoenen“. De link voor deze categorie zou kunnen zijn: https://mijnwebshop.nl/categorie/heren-damesschoenen.

Een slug moet, omdat deze voor links wordt gebruikt, uniek zijn en mag dus maar één keer voor komen.

In de onderstaande tabel vind je enkele voorbeelden van categorienamen en de slugs die ze in WordPress/WooCommerce zouden krijgen.

Categorienaam Categorie slug
Schilderen schilderen
Hobby & Creatief hobby-creatief
T-shirts & Tops t-shirts-tops
Kinderkleding (0-12 jaar) kinderkleding-0-12-jaar
Möbel & Deko mobel-deko

Hoe wordt de slug bepaald?

Voor het maken van een nieuwe categorie wordt de WordPress functie wp_insert_term() gebruikt. Deze functie maakt – tenzij er een eigen slug wordt opgegeven – van de gewenste categorienaam een slug zoals hierboven wordt beschreven.

Hierbij kan echter een probleem optreden. Wat moet er gebeuren als een bepaalde slug al bestaat? In het onderstaande voorbeeld zie je een boomstructuur van categorieën:

Zowel in de hoofdcategorie ‘Creatief’ als in de hoofdcategorie ‘Wonen’ bestaat er een subcategorie met de naam ‘Schilderen’.

WordPress controleert daarom of een slug misschien al bestaat. Hierbij geldt het principe: wie het eerst komt, het eerst maalt. Als we de categorieën in de bovenstaande afbeelding van boven naar beneden zouden gaan toevoegen, dan krijgen we de volgende slugs:

Categorienaam Subcategorie van Categorie slug
Creatief - creatief
Tekenen Creatief tekenen
Potloden Creatief - Tekenen potloden
Viltstiften Creatief - Tekenen viltstiften
Schilderen Creatief schilderen
Penselen Creatief - Schilderen penselen
Wonen - wonen
Schilderen Wonen schilderen-wonen
Rollers Wonen - Schilderen rollers
Kwasten Wonen - Schilderen kwasten

Zoals je hierboven ziet, wordt – bij een slug die al bestaat – de slug van de bovenliggende categorie aan de slug toegevoegd om een nieuwe unieke slug te krijgen. Deze aanpak lost een boel mogelijke problemen op, maar nog niet alle problemen. Stel dat we niet heel consequent zijn in de invoer van de categorienamen, dan kunnen we de volgende situatie tegenkomen:

Categorienaam Subcategorie van Categorie slug
Café Accessoires - cafe-accessoires
Cafe Accessoires - cafe-accessoires-2

De tweede categorienaam, zou bij het omzetten naar een slug dezelfde slug krijgen als de eerste categorienaam. Omdat de tweede categorienaam geen bovenliggende categorie heeft, kan deze niet aan de slug worden toegevoegd. WordPress voegt in dit geval simpelweg een cijfer toe aan de slug zodat deze weer uniek is.

Hoe worden categorieën uit King in WooCommerce gezet?

In King voeren we de categorieën in een vrije rubriek in of in een taalcode. Hierbij gebruiken we een pijlnotatie om hiërarchie aan te geven.

Wonen->Schilderen->Kwasten

In de bovenstaande tekst zien we drie categorieën:

  • De hoofdcategorie ‘Wonen’
  • De subcategorie ‘Schilderen’ die valt onder de hoofdcategorie ‘Wonen’
  • De sub-subcategorie ‘Kwasten’ die valt onder de subcategorie ‘Schilderen’

Als we een product aan een categorie willen toewijzen, moeten we eerst controleren of de categorie al bestaat. We beginnen hierbij altijd bij de hoofdcategorie. 

Stel we hebben de volgende categorieën in onze webshop en voegen een artikel toe met in de vrije rubriek de teksten:

Wonen->Schilderen->Kwasten
Creatief->Schilderen->Penselen

Stapsgewijs doen we dan het volgende:
 
  1. Begin bij de eerste vrije rubriekwaarde. (Wonen->Schilderen->Kwasten)

     

  2. Deel de pijlnotatie op in een boomstructuur. Dus een hoofdcategorie, subcategorie en een sub-subcategorie.
  3. Controleer of de hoofdcategorie ‘Wonen‘ bestaat.

    Bestaat er geen hoofdcategorie met de naam ‘Wonen’? Maak deze dan aan en geef het ID-nummer van deze nieuwe hoofdcategorie terug.

    Bestaat er wel een hoofdcategorie met de naam ‘Wonen’? Geef dan het ID-nummer van deze hoofdcategorie terug.
    (De hoofdcategorie bestaat, het ID-nummer is 5)

  4. Controleer of er onder de hoofdcategorie ‘Wonen’ (met ID-nummer 5) een subcategorie met de naam ‘Schilderen’ bestaat.

    Bestaat er geen subcategorie met de naam ‘Schilderen’ onder de hoofdcategorie ‘Wonen’ (met ID-nummer 5)? Maak deze dan aan en geef het ID-nummer van deze nieuwe subcategorie terug.

    Bestaat er wel een subcategorie met de naam ‘Schilderen’ onder de hoofdcategorie ‘Wonen’ (met ID-nummer 5)? Geef dan het ID-nummer van deze subcategorie terug.
    (De subcategorie bestaat, het ID-nummer is 6)

  5. Controleer of er onder de subcategorie ‘Schilderen’ (met ID-nummer 6) een sub-subcategorie met de naam ‘Kwasten’ bestaat.

    Bestaat er geen sub-subcategorie met de naam ‘Kwasten’ onder de subcategorie ‘Schilderen’ (met ID-nummer 6)? Maak deze dan aan en geef het ID-nummer van deze nieuwe sub-subcategorie terug.
    (De sub-subcategorie bestaat nog niet. De nieuw aangemaakte sub-subcategorie krijgt ID-nummer 8)

    Bestaat er wel een sub-subcategorie met de naam ‘Kwasten’ onder de subcategorie ‘Schilderen’ (met ID-nummer 6)? Geef dan het ID-nummer van deze sub-subcategorie terug.
 
Deze stappen worden vervolgens herhaald voor de categorieën ‘Creatief->Schilderen->Penselen’.
We eindigen na het verwerken met de volgende categorieën: