Modificare il template per una pagina WordPress

Chi non c’é passato? Abbiamo un tema WordPress perfetto, ma solamente in alcune pagine specifiche dovremmo eseguire delle modifiche per renderle più efficaci. Questa tipologia di modifica può sembrare difficile, ma con le normali nozioni di HTML (anche di PHP non guasterebbero) e un buon FTP risulta estremamante facile peronalizzare il tema di WordPress di una pagina.

Tema principale e Tema Child

Innanzitutto cominciamo dalle raccomandazioni: non modificare mai direttamente il tema!

Infatti in caso di aggiornamento perderesti tutte le modifiche effettuate. E tu non vorresti mai avere dei temi non aggiornati, rischiando così di diventare un ricettacolo per gli hacker, vero?

Per fortuna WordPress fornisce un sistema di overriding dei file. Questo vuol dire che possiamo implementare delle personalizzazioni al template, senza dover modificare i file originali del tema. Per fare questo innanzitutto dobbiamo installare il tema child, fornito assieme a quello originale, e attivarlo. Così facendo WordPress ci metterà a disposizione una cartella libera dove inserire i file che andranno a fare l’override degli originali.

Per creare un override a questo punto è molto semplice: copiamo il file che vogliamo customizzare nella posizione corrispondente nel tema child e possiamo cominciare la modifica. Ad esempio, se volessimo modificare il codice del file header.php che si trova in questa posizione:

 wp-content/themes/miotema/header.php 

basta copiarlo in quest’altra posizione:

 wp-content/themes/miotema-child/header.php

Fino a qui tutto bene e abbastanza elementare, ma se volessimo modificare una pagina specifica? Per fare quello dobbiamo capire come funziona la gerarchia dei temi WordPress.

La Gerarchia dei Template WordPress

Per ogni pagina visitata, WordPress, deve capire quali sono i file template da utilizzare per restituire la giusta grafica all’utente. Per far questo esiste una gerarchia ben precisa, riassumibile in questo schema (di WPTuts)

Innanzitutto il CMS si interroga su quale tipologia di tipologia viene richiamata: è un articolo? È una categoria? È una pagina? Definito questo, WordPress, andrà a cercare il file corrispondente.

Per personalizzare una pagina specifica basta aggiungere, ad esempio, lo slug o l’id della pagine in coda al nome del file, separato da un trattino. In questo esempio andremo a creare un override per il file della categoria con l’ID 2337

Ad esempio, nel caso di una categoria il file di template base sarà category.php:

 wp-content/themes/miotema-child/category-2337.php

Personalemente adotto questo sistema molto spesso. Per farvi un esempio concreto, l’ho utilizzato per creare una grafica personalizzata alla landing page delle consulenze. Ovviamente il template principale del un blog non è abbastanza performante per accogliere una landing, ma utilizzando l’overriding sono riuscito a creare una grafica efficacie solo sulle pagina che mi interessava, senza dover creare una pagina statica o usare un altro CMS. Figo, vero?

Cosa ne pensate? Lo avete già utilizzato questo sistema? Scrivimelo qui sotto nei commenti!