Non tutti sanno che è possibile personalizzare la visualizzazione delle categorie in modo rapidissimo sfruttando una proprietà del Category Templates. Normalmente siamo abituati a visualizzare le categorie sempre con il file archive.php. WordPress, invece, permette di eseguire la visualizzazione di una categoria anche con i seguenti file:
1 2 3 4 5 | category-slug.php (Nota: disponibile dalla release 2.9) category-ID.php category.php archive.php index.php |
Se abbiamo un categoria “Archivio Privato”, ad esempio, con ID = 7, e vogliamo visualizzarla in modo diverso dalle altre, possiamo inserire nel nostro tema un file category-3.php oppure category-archivio-privato-php.
L’alternativa a questa procedura è, come spesso accade, quello di verificare la categoria all’interno del file archive.php, tipo:
1 2 3 4 5 | if( is_category('archivio-privato') ) { // carico template specifico } else { // carico template generico } |
Quest’ultimo approccio dovrebbe risultare più lento rispetto al primo, in quando WordPress esegue comunque sempre un controllo sulla presenza di un file category-ID.php o category-slug.php.
Tuttavia, in alcuni casi, l’uso dell’if all’interno del file archive.php può risultare più vantaggioso se abbiamo parti in comune con le diverse visualizzazioni delle categorie, anche se risolvibile con un include opportuno.
Questa tecnica, comunque, è – per adesso – applicabile solo al template delle categorie e non alla singola vista. Non è possibile, infatti, utilizzare una sintassi simile con il file single-ID.php o single-slug.php in relazione ad un specifica categoria o, addirittura, ad uno specifico post. Probabilmente questo è dovuto al fatto che un Post può appartanere a più categorie.
Per realizzare una personalizzazione a livello di singolo post è applicabile una tecnica del tutto simile a quella vista per il file archive.php, tipo:
1 2 3 4 5 6 | // modifichiamo il file single.php if( in_category('archivio-privato') ) { // carico template specifico } else { // carico template generico } |









7
Ciao.
Vorrei chiederti un approfondimento su questo argomento.
In realtà ho sempre usato Drupal ed ho trovato molto utile e potente il modulo “Views” che permette di personalizzare viste e creare pagine e blocchi partendo da qualsiasi campo di un contenuto inserito.
Esiste un plugin simile in WP? O bisogna operare con i file templates di cui parlavi sopra?
Grazie.
@postmaster: può darsi che esista un plugin del tipo da te descritto. Tuttavia, almeno io, sono abituato a personalizzare le viste direttamente dal template, forse perchè ormai sono abituato così. Comunque, anche se esistesse un plugin, bisogna ammettere che lavorare sul tema permette di personalizzare tutto, fino ai minimi dettagli. Dubito che un Plugin possa permette l’enorme grado di libertà che il tema offre. Se hai qualche novità al riguardo comunque fammelo sapere, non si sa mai…
@Giovambattista Fazioli:
Grazie per la risposta.
Potresti darmi qualche dritta sopratutto su documentazione che tratti l’argomento?
Ti faccio un esempio.
Devo inserire un certo numero di immagini di quadri, con descrizione e qualche altro campo aggiuntivo.
In Drupal potevo creare un “tipo contenuto” personalizzato con i campi necessari.
In WP c’è la possibilità di creare articoli di tipo personalizzato? Tipo clonare il template dell’articolo e far si che se ne possa inserire un altro simile?
Una volta inserite tutte le immagini (o i contenuti di tipo quadro), avrei bisogno di creare una pagina dove riepilogare i quadri inseriti, quello che in Drupal si fa con il modulto “Views”. Non quindi una semplice galleria, ma appunto una vista che punti poi alle singole pagine dei singoli quadri.
Sicuramente c’è da mettere mani al codice, a me servirebbe essere indirizzato…poi la voglia di applicarsi e di studiare c’è tutta.
Grazie.
@postmaster: allora, prima di tutto puoi creare una nuova categoria “Quadro” o “Quadri”. Questa ti permetterà di utilizzare i normali Post per sfruttare poi quello che tu indichi con “Views”. Quindi crea un Post, inserisci il titolo e aggiungi le immagini e salvalo nella categoria “Quadri” che hai creato.
Per i campo aggiuntivi anche WordPress permette di crearne, e lo puoi vedere poco sotto l’editor quando inserisci il Post.
Arrivato a questo punto puoi eseguire un certo numero di personalizzazioni. Ad esempio il file
single.phpnel tema si occupa di visualizzare i “dettagli” di un Post, cioè il singolo Post. Puoi modificare questo o pate del suo comportamente inserendo:2
3
<!-- codice HTML specifico per il Quadro -->
<?php endif; ?>
Oppure, se preferisci, puoi rinominare
single.phpinsingle-default.php, creare un nuovo filesingle.phpe inserire:2
3
4
5
6
7
8
9
// Carica il template standard o quello personalizzato
if(in_category('quadri')) {
include(TEMPLATEPATH . "/single-quadri.php");
} else {
include(TEMPLATEPATH . "/single-default.php");
}
?>
I campi aggiuntivi che hai inserito mentre compilavi il “post” quadro, puoi recuperarli facilmente con:
Dove è
$keyè la chiave che hai usato nel Post per identificare il tuo campo personalizzato (come autore del quadro, anno o misure, ad esempio).Per la “Views”, cioè la lista dei quadri, hai già tutto pronto. Infatti avendo creato la categoria “Quadri” (o “Quadro”), ci penserà WordPress a presentarti una lista con eventuale paginazione. In alternativa puoi creare una tua vista personalizzata creando un file nella directory del tuo tema nominato:
category-quadri.php– se hai usato “quadri” comr categoria.Spero di non essermi perso nulla… in caso riscrivi pure
@Giovambattista Fazioli:
Perfetto, sei un grande!
Sto cercando di mettere in pratica i tuoi consigli.
Mi passeresti qualche link dove trovare documentazione per i nobbi come me?
Una sorta di tutorial per capire meglio la struttura di WP, anche se pian piano sto vedendo che funziona in maniera simile a Drupal.
Grazie.
Ciao, difficile darti un unico indirizzò dove trovare tutto. Per capire wordpress il primo punto da dove parte è la documentazione ufficiale, anche se non completa. Poi ci devi lavorare e affrontare ogni ostacolo cercando su Internet e su blog come undolog.
In alternativa scrivimi, sarò Felice – se posso – di aiutarti.