Specifieke single.php per categorie

door in

Specifieke single.php per categorie

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

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.

That's it

Een eenvoudige functie, maar een die handig kan zijn in het gebruik van thema ontwikkeling in WordPress, waarbij je wilt werken met verschillende opmaak bij categorieën.

Vind je dit bericht interessant?

Vind je dit bericht interessant? Dan zou ik het erg waarderen als je een like of andere "social-share" achter laat ;)