Funzionalità Plugin vs Temi

Ci sono molti fattori che influenzano le prestazioni sul tuo sito WordPress e uno dei trucchi che gli "esperti" ti dicono spesso di fare è evitare i plugin. Ti diranno che è meglio inserire funzionalità all'interno del tuo tema, invece di attivare un plugin. È vero?


introduzione

Quando si tratta delle prestazioni del tuo sito WordPress, ci sono molti fattori che influenzano i risultati complessivi. Questi fattori includono quanto bene il tuo tema è scritto, il numero di immagini e altre risorse che devono essere caricate, quanto il tuo sito è memorizzato nella cache, la qualità dei tuoi plugin attivati ​​e molti altri. Due fattori, tuttavia, che hanno un impatto zero sul livello di prestazioni del tuo sito sono il numero di plug-in (sì, sono serio al 100%) e se le funzionalità esistono come plug-in o parte del tuo tema.

Se fai una rapida ricerca su Google per "come aggiungere un modulo di contatto a WordPress"probabilmente noterai una tendenza pesante quando si tratta di titoli tutorial. La maggior parte dei tutorial includerà qualcosa sulla falsariga di"... senza un pluginQuesta tendenza, che esiste per dozzine di argomenti tutorial, mette in evidenza l'idea che i plugin devono essere cattivi e possibilmente danneggino le prestazioni del tuo sito.senza un plugin"così comuni nei titoli dei tutorial, così come nei post dei forum, molte persone sono arrivate a credere che sia meglio, in particolare per le prestazioni, includere parti di funzionalità all'interno di temi (siano essi personali o acquistati) piuttosto che fare affidamento su un plugin per fornirlo.

La prima risposta a questa credenza comune è che è completamente infondato e, in realtà, del tutto scorretto. Ci sono diversi aspetti della ragione per cui questa convinzione è sbagliata, e li esaminerò punto per punto. Toccerò anche brevemente la convinzione che un minor numero di plug-in sia migliore, che è (solitamente) del tutto scorretto.


Credenze comuni

1. La funzionalità è meglio inserita in un tema rispetto a un plug-in

L'idea alla base di questa convinzione è che i plugin sono spesso la fonte di problemi sul tuo sito, perché sono scritti male o sono in conflitto con qualcosa nel tuo tema. Se i plugin sono spesso cattivi, allora ha senso che è meglio posizionare funzionalità (come i moduli di contatto) all'interno del tema, a destra?

Sbagliato, ed ecco perché:

"Se il codice è caricato al punto Y o al punto X, non è più efficiente."

Innanzitutto, l'unica differenza tra il codice inserito in un tema e il codice inserito in un plug-in è il tempo di esecuzione. I plug-in attivi vengono caricati ed eseguiti prima del tema attualmente attivo, ma a parte questo, c'è una differenza pari a zero nel modo in cui viene eseguito il codice all'interno di ciascuno e anche zero differenza in termini di efficienza del codice. Se desideri un grande diagramma del processo di caricamento core di WordPress, consulta questo post di Stack Exchange.

Se il codice è caricato al punto Y o al punto X, non è più efficiente.

Secondo, con il punto numero 1, ora dobbiamo chiedere "come è un tema il posto migliore per la funzionalità?", dal momento che sia il codice del plugin che il codice del tema vengono eseguiti allo stesso modo, la risposta è semplice: mentre i temi hanno un vantaggio zero sui plugin quando si considera dove posizionare le funzionalità, si scopre che i plugin hanno un paio di vantaggi significativi rispetto ai temi Passerò attraverso questi vantaggi in un attimo.

2. Il codice dei temi funziona meglio dei plugin

Non so davvero da dove provenga, anche se sospetto che abbia a che fare con il fatto che le persone hanno spesso paura dei plugin e spesso sentono che i plugin causano problemi di prestazioni su un sito. Il fatto è che questa convinzione è ridicola al meglio. Come detto sopra, c'è differenza zero (eccetto per il timing) nel modo in cui viene eseguito il codice del plugin, rispetto al codice del tema.

Se inserisci una funzione in un plug-in, eseguila, registra i tempi e poi fai la stessa cosa con la funzione, ma mentre è inserita nel tema, troverai che c'è differenza zero. Entrambi eseguono con la stessa velocità e nessuno dei due ha alcun vantaggio diretto sull'altro, in termini di prestazioni.

Questo fa sorgere la domanda allora, i temi sono in definitiva migliori dei plugin per le funzionalità? La risposta breve, no, assolutamente no.


Alcuni plugin di motivi sono migliori

Dovremmo ora chiederci, i plugin sono in definitiva migliori per le funzionalità rispetto ai temi? La risposta breve, sì, il più delle volte lo sono sicuramente. Ma perché? Bene, ci sono alcuni motivi.

  1. Separare il tuo codice in "blocchi" è una delle cose migliori che puoi fare per i progetti di grandi dimensioni, in quanto rende l'intero progetto molto più facile da mantenere ed esegue il debug in caso di problemi. Inserendo le proprie funzionalità separate nei propri plugin dedicati, si creano effettivamente questi "blocchi". Ogni plugin viene gestito separatamente, che (come lo troverete) può rendere infinitamente più facile rintracciare i problemi.
  2. Se qualcosa si rompe, devi semplicemente disattivare il plugin. Diciamo che il modulo di contatto sul tuo sito è integrato nel tuo tema e si rompe, portando il sito verso il basso con esso. cosa fai? Se non hai le competenze o sai come sostituire il modulo di contatto con uno funzionante, sei nei guai. D'altra parte, se la funzionalità è fornita da un plug-in, basta semplicemente disattivare il plug-in e riportarlo online una volta risolto il problema oppure cercarne uno nuovo.
  3. Se vuoi cambiare temi, come la maggior parte dei siti lo farà almeno una volta o due, perderai ogni bit delle funzionalità personalizzate che hai (compresi i codici brevi) perché il nuovo tema non avrà le stesse funzioni o verrà eseguito / costruiscile diversamente. Se tu, invece, avessi tutti i tuoi codici brevi all'interno di un plugin, così come cose come i moduli di contatto, tutto ciò che devi fare è caricare il nuovo tema e attivarlo: tutto funzionerà come prima. Non è forse una buona ragione per dire che i plugin sono migliori per funzionalità separate rispetto ai temi? Credo che sia.
  4. I plugin possono essere aggiornati e migliorati separatamente. Se aggiungi miglioramenti a un tema, l'intero tema deve essere aggiornato. Quante volte hai visto un utente di un tema aggiungere personalizzazioni al style.css o functions.php? Se lo hanno fatto, è impossibile per loro aggiornare il tema e ottenere i nuovi miglioramenti senza spostare manualmente tutte le loro modifiche. Questo presuppone che non abbiano creato un tema figlio, che dovrebbero avere ma molti utenti no. Quando i miglioramenti vengono inseriti in un plug-in, l'utente non deve fare altro che aggiornare il plug-in dal proprio Dashboard.

Va oltre queste quattro ragioni, ma dovrebbe già essere chiaro l'enorme vantaggio che i plugin hanno sui temi per le funzionalità separate.

Questo ora mi porta alla domanda se sia una brutta cosa avere un sacco di plugin diversi. Probabilmente puoi immaginare quanto velocemente il numero di plugin attivi si espanderà se stai posizionando ciascuna delle principali funzionalità in plugin separati. Questo causa un problema? Che dire una volta che hai raggiunto 10 plugin? Non è molto? Che ne dici di 20 o 30? Non è così estremo??

No.

Durante WordCamp Kansas City 2012, ho avuto l'opportunità di passare un po 'di tempo a parlare con Otto, che è uno dei migliori sviluppatori di WordPress e anche uno degli uomini di destra di Matt Mullenweg. Otto fa la maggior parte dello sviluppo sul sito personale di Matt e mi ha detto che ci sono dozzine di piccoli plugin di funzionalità in esecuzione su quel sito. Ciascuno dei plugin ha compiti specifici e tutti corrono perfettamente uno accanto all'altro, anche se ce ne sono molti.

Gestisco personalmente circa 50 plug-in sul mio sito Plugin di Pippin.

Il punto è che i plugin non causano problemi di prestazioni semplicemente perché sono plugin, nemmeno con 100 o anche 200 attivi allo stesso tempo. I problemi di prestazioni con i plugin derivano da quelli scritti male, non dal numero di plugin. Potresti facilmente causare più problemi di prestazioni con un singolo plugin scritto male che con 300 plugin semplici e ben scritti.

I problemi di prestazioni di solito si riducono al caricamento delle risorse e all'esecuzione di query di database, quindi i plug-in che ne fanno gran parte tendono a influire sulle prestazioni. I plug-in che non eseguono query sul database o caricano risorse hanno un impatto pari a zero (o molto vicino allo zero) sulle prestazioni, ed è per questo che puoi letteralmente eseguire 300 plug-in sul tuo sito senza alcun impatto.

So anche che WP Candy funziona sempre con 80 o 90 plugin attivi.

La chiave da ricordare è che il numero di plug-in ha un impatto zero sulle prestazioni, solo la qualità e il tipo di plug-in influiscono sulle prestazioni.

Il secondo punto chiave da ricordare è che il codice nei plugin funziona esattamente come il codice nei temi, quindi sbarazzarsi dell'idea che è meglio inserire funzionalità nel tema di un plug-in. I temi dovrebbero controllare gli aspetti visivi del tuo sito, non le funzionalità.

L'ultimo punto da ricordare è che i plugin sono malvagi solo se costruiti male. I plugin stessi non sono mai intrinsecamente cattivi; sono solo cattivi perché il codice che compone il plugin è cattivo.