Questo post non vuole essere una lista polemica di temi su cui si potrebbe discutere e che lascerebbe solo spazio a inutili discussioni, quanto piuttosto una guida per evitare di dover riscrivere un tema che si pensava dovesse risolvere i nostri problemi. Nel film "Minority Report" l'addetto alla custodia dei prigionieri della Pre-Crime dice a Tom Cruise: "Siamo usciti fuori da un buco solo per cadere in un altro". Vediamo come evitare questa situazione.
Pagare di più non significa sempre avere di più
Se fate un giro su siti come Theme Forest e poi sui temi free del sito di WordPress noterete sicuramente una grande differenza a livello grafico tra i due tipi di temi. I primi sono semplicemente fantastici, mentre i secondi sono sicuramente più modesti.
Non lasciatevi ingannare da questa differenza: il layout è qualcosa che con i CSS e Photoshop si sistema subito, quindi è meglio un tema minimale ma solido che un tema spettacolare ma dalla struttura così rigida che praticamente vi impedisce qualsiasi tipo di personalizzazione che non passi dal pannello di controllo del tema.
Esistono framework minimali per WordPress che se usati come base vi permettono di tirare fuori dal cilindro dei siti notevoli, mentre ci sono temi superpagati che non vanno oltre la loro organizzazione di partenza.
Ovviamente se siete a corto di tempo, è logico che la prima soluzione sia consigliabile, ma se la vostra deadline ve lo consente, vi consiglio caldamente di provare la seconda strada.
Funzioni, funzioni, funzioni...
Le funzioni per un tema sono un'ottima cosa, ma se abusate possono rivelarsi un'enorme perdita di tempo. Per esempio, un tema potrebbe avere un loop per i post con immagini, uno per i post normali e uno con i post video.
WordPress ci permette di usare dei template per questi tipi di post, ma spesso molti temi usano al loro post delle funzioni custom. Ovviamente se vogliamo modificare questi post la cosa più semplice sarebbe poter avere i template sotto mano nell'editor, ma con le funzioni il codice è accessibile solo nella cartella che il tema ha riservato a queste funzioni. E ovviamente perderemo altro tempo ad identificare il file giusto.
Vi garantisco che se avete un'urgenza per conto del cliente e dovete modificare qualcosa, l'ultima cosa che vorreste e mettervi di nuovo a navigare tra i file del tema tramite FTP. Poco ma sicuro.
Quindi i temi in cui non solo la logica ma anche la struttura è gestita da innumerevoli funzioni sono da prendere con cautela.
JavaScript object-oriented: questo sconosciuto
Molti temi semplicemente impilano il codice JavaScript file dopo file e usano tutt'al più un file principale in cui ad esempio invocano l'evento ready
di jQuery per caricare tutto il codice. Mancano completamente di un approccio di questo tipo:
var MyTheme = new function() { // proprietà e metodi }();
Ossia non creano un namespace per la logica delle operazioni. Quindi se volete aggiungere del codice non sapete mai con esattezza dove inserirlo. Se la classe avesse un metodo di inizializzazione del codice:
var MyTheme = new function() { // proprietà e metodi this.init = function() { // lancia il codice }; }(); $(function() { MyTheme.init(); });
Quindi ora il nostro codice aggiuntivo può essere inserito nel metodo init()
, che viene lanciato con l'evento ready
di jQuery. Se i temi utilizzassero un approccio simile o meglio un approccio basato sul pattern klass, le cose andrebbero decisamente meglio per noi sviluppatori.