Categorie personalizzate in WordPress

Categorie personalizzate in WordPress

Dopo la personalizzazione delle pagine, oggi vi parlerò di come sfruttare al meglio le categorie di WordPress, uno strumento molto potente che vi permetterà di personalizzare il vostro sito tramite semplici accorgimenti.

Come è facile intuire, le categorie permettono di raggruppare più post accomunati da uno specifico argomento. Sotto certi aspetti sono molto simili ai tag ma ci sono alcune differenze profonde. È molto più semplice capire il concetto pensando ad un esempio concreto: immaginiamo di avere un sito di culinaria in cui si vuole scrivere la ricetta del tiramisù. Verrà naturale inserirla in una categoria “Dessert” e attribuirgli parole chiave come “caffè”, “savoiardi”, “cacao”.

In un sito con più categorie, potremmo voler dare un diverso stile o impaginazione a ciascuna: tornando al nostro esempio, potremmo voler disporre nelle nostre categorie “Primi” e “Dessert” le ricette in una griglia con schemi cromatici distinti e inserire nella categoria “Top ricette” una classifica in cui le prime sono messe in evidenza con un particolare sfondo e le successive in lista. Gli esempi possono essere infiniti ma è possibile concretizzarli in pochi casi specifici.

Categorie con diversi stili

Supponiamo di voler dare a “Primi” uno colore di sfondo caldo, e “Dessert” uno sfondo acceso. WordPress ha già pensato a tutto per rendere questa operazione molto semplice: se osserviamo il codice html generato, noteremo in particolare che i tag dei post della categoria presentano al loro interno una classe di tipo “category-nome-categoria”. Ci basterà quindi entrare nel nostro foglio di stile e scrivere le seguenti regole:

.category-primi{
    background-color: #4B1919;
}
.category-dessert{
    background-color: #F1A634;
}

Categorie con diversa impaginazione

Per quanto possano essere significative le differenze che si possono sviluppare a livello di struttura con solamente i fogli di stile a volte non sono sufficienti. WordPress ha risolto anche questo problema, permettendoci, similmente per le pagine (come spiegato qui) di specificare quale pagina prendere come riferimento. In questo caso ci basterà creare un file nella nostra cartella del tema wp-content/themes/nome-tema/ con il nome di category-nome-categoria.php o category-id-categoria.php. Così facendo, WordPress controllerà se esiste una pagina con il nome della categoria corrente, restituendo la pagina di default category.php in caso negativo.

E se volessi la stessa struttura per più categorie?
Nel caso in cui si avessero alcune categorie per cui si vuole mantenere la stessa struttura, ci basterà un piccolo hack nella pagina functions.php. Incolliamo in fondo alla pagina la funzione:

function my_category_template( $template ) {

    if( is_category( array( $id1, $id2 ) ) ) // Selezioniamo le categorie dal loro id
        $template = locate_template('category-griglia.php' ); // Preleviamo il template desiderato

    return $template;
}
add_filter( 'category_template', 'my_category_template' );

Dove $id1, $id2 sono l’id delle categorie desiderate. Questo accorgimento può ad esempio essere utile per siti multilingua.

Inserire post di una categoria in una pagina

Potremmo infine voler mostrare dei post di una categoria all’interno del nostro sito, senza dover essere nella pagina di categoria. Se ad esempio volessimo mostrare gli ultimi 5 post della categoria “Trucchi in cucina” nella sidebar, potremmo fare come segue:

<?php
   query_posts('category_name=Trucchi-in-cucina&showposts=5');
   while (have_posts()) :
      the_post();
?>
   <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php endwhile; ?>

Nel prossimo intervento vi parlerò dei post-type, un altro strumento molto utile da cui si possono trarre numerosi benefici.