Code voorbeeld

Specifieke single.php per categorie

Leestijd: 1 minuten (264) words
profile image

Rick de Jong

Strategie

September 20, 2016 08:04

Specifieke single.php per categorie

Een verschillende layout per categorie

Voor een van de websites die wij beheren, waren we op zoek naar een functie om specifieke single.php bestanden aan te roepen op basis van een WordPress categorie. 

WordPress logica

Normaliter zou je denken dat dit zou kunnen door de categorie-slug of naam achter single- te zetten, maar dit werkt niet. Voorbeeld: stel je hebt de categorie nieuws. Je zou dan uitkomen op

  • single.php
  • single-nieuws.php (met een aparte indeling voor de categorie nieuws).

Zoals gezegd werkt dit niet. Om dit toch te bewerkstelligen kun je onderstaande functie gebruiken

add_filter('tsd_single_per_cat', 
 create_function(
  '$t', 'foreach( (array) get_the_category() as $cat ) { 
   if ( file_exists(TEMPLATEPATH . "/single-{$cat->term_id}.php") ) 
   return TEMPLATEPATH . "/single-{$cat->term_id}.php"; } 
   return $t;' 
));

Zoals je in bovenstaande code kunt zien, loopt de functie door de bestaande categorieën heen en controleert of hier een template bestand voor is. Houd er hierbij wel rekening mee dat dit niet gebeurt op de naam of slug, maar op het ID. Achterhaal dus het ID van jouw categorie, en plaats die achter de single-file die je wilt aanpassen.

Op deze manier krijg je bijvoorbeeld single-2.php, als opmaak voor posts in categorie-ID 2.