Tutti sanno che il metodo migliore per modificare (personalizzare) un tema per WordPress è crearne uno “figlio” (child). Su codex troviamo un ampio e approfondito articolo a riguardo (inglese | italiano). In pratica si tratta di creare una nuova cartella (nometema-child) ed inserire un foglio di stile CSS che verrà utilizzato in aggiunta/sostituzione di quello originale.

filezilla

Nell’esempio sopra abbiamo creato un cartella per la realizzazione di un “child” del tema Able.

Il foglio di stile “style.css” che inseriremo nella directory “child” (nell’esempio able-child) dovrà contenere le seguenti linee:

Le righe fondamentali sono la 2, la 7 e la 11. La riga 2 definisce il nome del tema, la 7 specifica la cartella (directory) del tema genitore, la 11 permette di importare il foglio di stile del tema genitore (che verrà caricato prima delle nostre modifiche/aggiunte).

filezilla1

Una volta caricato il file “style.css” nella directory “child” il nuovo — si fa per dire — tema sarà selezionabile e attivabile tramite pannello di amministrazione di WordPress.
Se oltre al foglio di stile CSS vogliamo modificare anche i files di template, sarà sufficiente di volta in volta copiare nella directory “child” il file che vogliamo modificare, il quale verrà utilizzato in sostituzione di quello originale. Quindi, immaginando di voler personalizzare header e footer non faremo altro che copiare header.php e footer.php del template genitore ed inserire i due files nella cartella “child”.

filezilla2

Ciò vale per il resto dei files del template tranne che per il functions.php (che definisce alcune funzioni del tema). Il functions.php del tema child viene caricato prima di quello del tema originale (genitore) ed è costituito da un tag PHP di apertura e chiusura al cui interno possono essere inserite nuove funzioni.

Per esempio, se il tema originale (genitore) non supporta le immagini in evidenza (Post Thumbnails) si potrebbe aggiungere:

Si potrebbe anche aggiungere una sidebar:

Nell’esempio sopra si aggiunge una sidebar al tema figlio “able-child” denominata “Testata” (per realizzare un’area orizzontale da collocare in alto e nella quale inserire alcuni widget).
La nuova sidebar deve poi essere inserita nel template del tema “child” (es. in header.php) con un codice tipo:

Per maggiori informazioni sul file functions.php si veda:

Per maggiori informazioni sulle sidebar si veda:

Dopo questa breve introduzione ai temi “child” è opportuno prendere in considerazione la possibilità di modificare un tema grazie all’utilizzo di moduli (plugins) che introducono nuove caratteristiche di tipo “strutturale”. Per fare un esempio, il plugin “Full Screen Background Images”  consente di inserire facilmente immagini di sfondo al sito web. Simile, ma con la possibilità di definire specifiche immagini per pagina, è “Background Manager“.
Altri moduli interessanti introducono funzionalità che consentono un elevato livello di personalizzazione del tema. Ad esempio uno slider particolarmente versatile che può essere utilizzato in svariati modi per ricoprire diverse funzioni è “Meta Slider“. Il plugin offre l’opportunità di inserimento del codice PHP direttamente nel template oltre che nelle pagine e nei post tramite “shortcode”.
Una sidebar può rappresentare inoltre uno spazio dove collocare uno o più articoli di determinate categorie, consentendoci di trasformare un tema classico in uno stile “magazine”: il plugin “BNS Featured Category” (ed altri simili) è particolarmente utile a questo scopo. Merita di essere menzionato anche “Black Studio TinyMCE Widget” che introduce un editor WYSIWYG (identico a quello utilizzato per la scrittura dei post) nell’area widget. Sempre in quest’area possiamo collocare un riquadro per i post correlati, es. tramite “ELI’s Related Posts Footer Links and Widget” (un po’ vecchiotto ma perfettamente funzionante).
Se poi vogliamo modificare il numero di post per pagina in modo che sia differente a seconda che si tratti della homepage, di una categoria o del risultato di una ricerca, il modulo “cbnet Different Posts Per Page“ci consente di farlo facilmente. Per chi utilizza gli estratti (riassunti o excerpt) per la presentazione dei post, “Rich Text Excerpts” è assolutamente da consigliare. Un “must have” è poi il conosciutissimo “Jetpack by WordPress.com“.
Insomma, il numero di moduli (plugins) per WordPress è talmente elevato e le loro funzioni così varie da rendere quasi ogni esigenza realizzabile. Con un po’ di pazienza (modificare il template e trovare i plugins adatti richiede comunque tempo) il tema più anonimo può trasformarsi in una struttura completamente diversa.