WordPress: come creare template per i singoli post di categorie diverse

Per il progetto che sto finendo ho dovuto cercare diverse funzioni, fra le quali quella di personalizzare i singoli post collegati ad una singola categoria.

Cercando ho trovato questo semplice script da aggiungere al file functions.php del vostro tema.

Innanzitutto nella cartella del vostro tema create una cartella scrivibile che chiamerete /single/ e dentro la quale riporrete il file che costituisce il template della vostra categoria, chiamandolo nel seguente modo: single-cat-nomecategoria.php dove il nome della categoria sia lo slug (l’abbreviazione) usata da wordpress. Se composta da più parole non temete, potete usarla tranquillamente (es: single-cat-nome-della-categoria.php)

Ed ecco lo script che prende in automatico quel template associandolo al post presente in quella categoria:

/**
* Filter the single_template with our custom function
*/
define(SINGLE_PATH, STYLESHEETPATH . '/single');

/**
* Filter the single_template with our custom function
*/
add_filter('single_template', 'my_single_template');

/**
* Single template function which will choose our template
*/
function my_single_template($single) {
global $wp_query, $post;

/**
* Checks for single template by category
* Check by category slug and ID
*/
foreach((array)get_the_category() as $cat) :

if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->slug . '.php';

elseif(file_exists(SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php';

endforeach;

/**
* Checks for default single post files within the single folder
*/
if(file_exists(SINGLE_PATH . '/single.php'))
return SINGLE_PATH . '/single.php';

elseif(file_exists(SINGLE_PATH . '/default.php'))
return SINGLE_PATH . '/default.php';

return $single;
}

lauryn

Web designer dal 2002, mi occupo di content marketing per la società WordSteps SLT LTD di Edimburgo e altri clienti. Vivo a Milano, sposata con una figlia e due cagnoline, e una passione per libri e Scozia.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

%d blogger hanno fatto clic su Mi Piace per questo: