Attiva i Plugin con il Tema con la libreria TGM Plugin Activation

Richiedi Plugin per il tuo Tema grazie alla TGM Activation Library

Diciamoci la verità; creare temi è un lavoro che rende! Anche perché altrimenti, io e te non ci troveremmo anche quest'oggi uno di fronte all'altro. Alcune volte i nostri temi richiedono l'installazione di plugin, ma ci possiamo affidare alle competenze del cliente?

Ok facciamo per un attimo un passo indietro, di che cosa sto parlando?

Se hai sviluppato temi soltanto per dei clienti diretti; con i quali hai avuto l’opportunità di metterti seduto con loro, discutere delle proprie necessità e ottenere i contenuti necessari alla creazione del tema (o meglio del sito) molto probabilmente non hai mai avuto la necessità di richiedere l’installazione di determinati plugin perché, in fin dei conti, eri tu che man mano te li installavi a manina 😀

Ma cosa succede se tante volte decidi di rilasciare un tema gratuito (per scopi promozionali) o un tema premium da vendere all’interno di uno dei più famosi marketplace?

Un tema da solo non può far tutto e fin troppe volte abbiamo assistito alle discussioni riguardanti l’utilità di inserire delle funzionalità all’interno di un tema; cose come un pannello per l’ottimizzazione on page dei propri articoli, i pulsanti social per la loro condivisione o l’aggiunta di altre funzionalità che hanno ben poco a che fare con il tema di per sé.

Queste sono tutte caratteristiche che non devono interessare il tema e non dovrebbero essere incluse al suo interno, senza contare che se hai intenzione di integrarle dovrai svilupparle e inserirle tu stesso all’interno…

Ma c’è un metodo migliore per fare tutto questo ed in questo articolo ti spiego proprio come fare.

Sfrutta i Plugin WordPress e facilitati la vita

Se c’è una cosa che mi piace moltissimo di questa piattaforma è la possibilità di poter estendere le sue funzionalità con dei semplici plugin. Abbiamo già visto quanto sia semplice aggiungere questi elementi, una cosa talmente semplice che qualsiasi cliente che abbia mai preso in mano un mouse è in grado di fare (se poi non sa proprio come muoversi, puoi sempre indicargli l’articolo che ti ho collegato precedentemente 😉 ).

Grazie ai plugin è possibile aggiungere nuove funzionalità, anzi se si parla di un plugin come Jetpack ne puoi inserire moltissime. Poi dobbiamo essere anche onesti sviluppatori, sei sicuro che da solo sarai in grado di sviluppare tutte le funzionalità richieste e nel miglior modo possibile?

Personalmente non mi ritengo affatto all’altezza del compito.

Non tanto perché mi mancano le competenze tecniche, anche se forse sotto alcuni aspetti è proprio così, ma più che altro perché all’interno della directory presente su WordPress esistono dei plugin come WordPress SEO by Yoast, BackWPup, bbPress e moltissimi altri che vengono sviluppati e mantenuti da anni e che hanno raggiunto un livello di ottimizzazione e qualità che raramente sarei in grado di creare da solo.

Oltre a questo dovresti considerare una cosa, il tuo tempo è la cosa più preziosa che hai a disposizione, è quindi un bene non diluirlo per reinventare la ruota, ci sono buone soluzioni che una volta installate ti permettono di risparmiare del tempo; ebbene usale!

Essere in grado di chiudere un lavoro nel minor tempo possibile ti permetterà di trovarne altro per lavorare su un nuovo progetto, passare più tempo con i tuoi amici e familiari oppure concederti quella passeggiata sotto al sole che desideri da tanto tempo.

Ma quando si rilascia un tema al pubblico, quando non è possibile seguire tutte le fasi di configurazioni del proprio tema risulta molto difficile sapere se questo viene usato nel modo corretto…

Partendo da questa base bisogna assicurarsi che il nostro utente sia in grado di installare i plugin richiesti, esistono molte soluzioni per raggiungere questo risultato e a breve ti mostrerò quella che ritengo migliore.

Quali Soluzioni hai a tua Disposizione?

Se hai sviluppato un tema ottimizzato per Soliloquy, per WooCommerce o per uno delle altre migliaia di plugin presenti all’interno (e non) della directory WordPress, le soluzioni che potresti seguire sono le seguenti:

  • indicare all’utente la necessità dei singoli plugin all’interno delle pagine che sponsorizzano il tuo tema;
  • inviare una mail dopo il download/acquisto del tema al tuo cliente per avvertirlo che, se desidera sfruttare tutte le potenzialità offerte dal tuo tema, dovrà installare i seguenti plugin;
  • creare una cartella mu-plugins che ci permette di specificare dei plugin che devono essere assolutamente utilizzati (must use) con il tema stesso, questo significa includere questa cartella e i relativi plugin all’interno del pacchetto .zip del tema stesso;
  • iniziare ad utilizzare la semplice libreria PHP TGM Activation Library che permette di integrare il sistema di installazione/aggiornamenti plugin presente in WordPress rendendo l’utente finale in grado di installarsi da solo tutto il necessario.

Ovviamente potresti creare infinite variabili dei punti precedenti, ma quello che voglio mettere in luce è soltanto uno: cerca di semplificare la vita dell’utente e permettergli di configurare il tema nel minor tempo possibile. Alla vista di questi aspetti, credo proprio che seguire l’ultimo punto sia la cosa più semplice da fare.

Se poi ritieni che uno degli altri metodi sia più utile o veloce, sarei curioso di conoscere meglio le tue opinioni all’interno dei commenti di questo stesso articolo.

Implementiamo la Libreria nel Tema

Diciamo, per esempio, che il nostro tema è stato creato per poter utilizzare i plugin BuddyPress e WooCommerce presenti all’interno della directory WordPress ma che, oltre a questo, abbiamo bisogno anche di un plugin esterno che non è stato pubblicato nella directory precedente.

Il link al plugin esterno che troverai all’interno del codice di esempio in questo articolo non è funzionante ma mi è servito per farti capire come sia possibile richiederne l’installazione.

I passi che dovrai seguire sono i seguenti:

  1. scaricare la libreria;
  2. importarla all’interno del tuo tema;
  3. configurarla per le tue necessità;
  4. testare se tutto funziona.

Dato che al momento non voglio farti confondere le idee utilizzando strani temi realizzati dal sottoscritto o da altri sviluppatori, andremo a lavorare su una copia del tema _s in modo che non ci sia troppa difficoltà nel capire la struttura del codice.

Se non lo conosci da vicino ti consiglio di dare una lettura a questo articolo che ti introdurrà al concetto di starter theme, ma intanto andiamo a scoprire come è strutturata la cartella del tema stesso:

Struttura del tema di partenza _s

Ora che abbiamo un tema di partenza, andiamo ad includere la libreria. La prima cosa che devi fare è scaricare la libreria stessa sfruttando il link che ti ho appena passato e scaricato il pacchetto .zip, è giunto il momento di comprendere come includerla all’interno del tema.

Importiamo e Configuriamo la TGM Plugin Activation Library

Adesso che hai estratto il contenuto dell’archivio .zip tutto quello che devi fare è includere il file contenente la classe PHP all’interno del tuo tema. Generalmente il nome del file è class-tgm-plugin-activation.php e per motivi di comodità, dato che stiamo lavorando all’interno di _s, vado ad includerla all’interno della cartella inc/ in questo modo:

Inserimento di TGM Plugin Activation in _s

Adesso che il file è stato incluso nella struttura del tema dobbiamo dire a WordPress che quando verrà attivato il tema, dovrà richiedere i plugin che andremo a specificare al suo interno. Per fare questo non devi far altro che aprire il tuo file functions.php ed inserire quanto segue:

Fatta questa operazione, qualsiasi installazione WordPress che andrà ad attivare il tuo tema sarà al corrente di questa libreria; peccato che non saprà proprio cosa farsene dato che manca tutta la configurazione! Vediamo come si può risolvere a questo problema.

Lo stesso autore della libreria ci consiglia di prendere direttamente il codice dal file example.php che si trova all’interno della cartella contenente la libreria; onestamente preferisco spiegarti passo passo come dovrai muoverti prima di darti in pasto agli squali 😀

Quando si parla di configurare la libreria TGM devi sapere che avrai la necessità di configurare due aspetti differenti:

  • la configurazione che ti permetterà di dichiarare i plugin essenziali al corretto funzionamento del tuo tema;
  • e quella che invece riguarda la configurazione della libreria stessa.

Procediamo un passo alla volta e guardiamo che cosa si intende per questo.

Richiediamo i Plugin da Installare

La configurazione di questo aspetto viene delegata ad un array che, con molta fantasia, viene incluso all’interno di una variabile chiamata $plugin. Al suo interno ogni plugin viene dichiarato come un ulteriore array che ci permetterà di specificare i seguenti valori:

  • name un parametro richiesto che ci permette di specificare il nome del plugin;
  • slug che invece ci permette di specificare lo slug (l’abbreviazione) usata per registrare il plugin stesso all’interno di WordPress;
  • required questo viene rappresentato con un valore booleano che permette di specificare se il plugin è richiesto, e quindi essenziale al corretto funzionamento del tema stesso, oppure se viene semplicemente consigliato, e quindi che permette di aggiungere funzionalità;
  • source questo è un parametro richiesto soltanto se il plugin che vogliamo installare non si trova all’interno della directory di WordPress, ma allo stesso modo l’esperienza dell’utente finale non verrà modificata.

Questi sono soltanto i punti essenziali che definiscono un plugin all’interno di questa libreria. Come potrai vedere tu stesso all’interno del file example.php, i parametri per questa configurazione sono molti altri, ma per gli scopi di questo articolo quelli che ti ho presentato bastano e avanzano 😀

Cerchiamo di passare dalla teoria alla pratica con questo semplice blocco di codice:

Una cosa che ti vorrei far notare è che nei primi due plugin che abbiamo inserito con i nomi dei plugin (BuddyPress e WooCommerce), non abbiamo avuto alcuna necessità di specificare un source mentre come dicevo anche prima, se desideri inserire un plugin esterno hai la necessità di includere questo parametro.

Se sei lì a grattarti la testa cercando di capire il significato di external_url non c’è alcun bisogno di farlo, ti spiego immediatamente il suo funzionamento.

Prima di installare un plugin, la tua installazione WordPress inserisce un link di ritorno alla pagina principale della sua directory; se stai installando un tuo plugin o uno non presente nella sua raccolta, puoi sempre specificare una URL differente.

Ebbene hai appena scoperto come puoi richiedere i plugin durante l’installazione dei tuo tema, hai finito il lavoro?

Beh purtroppo no, c’è ancora da configurare la libreria stessa; ma se andiamo a prendere spunto dal file example.php la nostra strada è parecchio semplificata:

All’interno di questo blocco di codice non ho fatto altro che tradurre le stringhe di testo per aiutarti a capire meglio a che cosa servono i singoli parametri, ma se desideri una spiegazione leggermente più dettagliata, continua pure a leggere qua sotto:

  • default_path se stai richiedendo l’installazione di un plugin che è presente all’interno di una cartella del tuo tema, puoi specificare il percorso assoluto che permetterà alla libreria di trovarlo ed installarlo correttamente;
  • has_noticesquesto parametro ci permette di scegliere se mostrare o meno la notifica per l’installazione dei plugin, io la lascio sempre a true anche perché altrimenti non avrebbe senso installare questo plugin 😉
  • dismissable in poche parole permette all’utente di nascondere il messaggio ma se lo imposti a false il messaggio verrà mostrato fintanto che l’utente non installa i plugin richiesti;
  • message è un messaggio che puoi inserire prima della tabella dei plugin, è molto interessante anche perché ti permetterà di inserire dei codici HTML che ti permetteranno di mettere in risalto il tuo messaggio.

Quindi a questo punto hai detto quali sono i plugin di cui hai bisogno, hai configurato la libreria; quindi è giunto il momento di attivare il tema e vedere all’opera questa libreria… Non ancora tigre 😉

Prima di fare questo devo mostrarti il codice completo da inserire; giusto per essere sicuro di farti capire anche quale azione dovrai andare a pizzicare per includere le configurazioni precedenti

Ecco quindi tutto il codice che dovrai inserire all’interno del tuo functions.php:

Testa se Tutto Funziona Correttamente

Ebbene siamo arrivati alla prova del nove, tutto quello che ti resta da fare è attivare il tema al quale hai applicato queste modifiche, che nel nostro esempio viene rappresentato dal tema _s, e vedere se tutto funziona correttamente.

tgmpluginactivation

L’hai fatto? Hai attivato il tuo tema ed ottenuto un messaggio come quello rappresentato nella figura precedente?

Se stai sorridendo e squotendo la testa significa che tutto è andato a buon fine e puoi tornare a dedicarti allo sviluppo del tema; se invece hai incontrato qualche problema non esitare a contattarmi, puoi sfruttare i commenti che trovi qua sotto oppure utilizzare la pagina contatti, la scelta è tua 😀

Conclusioni

In questo articolo ti ho voluto presentare la libreria TGM Plugin Activation perché ritengo che ti sarà di grande aiuto, sopratutto ora che anche marketplace come ThemeForest si sono (finalmente) decisi a controllare il codice presente all’interno dei temi e stanno puntando a temi più puliti.

Questa è una soluzione ottimale perché, come dicevo prima, non ti costringerà a dover sviluppare tu stesso determinate funzionalità e sopratutto perché ti permetterà di dedicarti interamente alla creazione del tema stesso!

Se ti è piaciuto questo articolo ricorda che a breve ne appariranno molti altri con consigli e suggerimenti su come migliorare il tuo sviluppo con questa piattaforma e ricorda che se hai qualche richiesta non devi far altro che commentare qua sotto 😉

Lascia il tuo Pensiero

2 Responses to “Richiedi Plugin per il tuo Tema grazie alla TGM Activation Library”

  1. Fabio

    Ciao Andrea, come prima cosa ti faccio i miei complimenti per questo grande articolo, come sempre al Top! Detto questo volevo chiederti: La libreria TGM è possibile includerla anche in un Child Theme? Immagino di si, che sia lo stesso procedimento, con la creazione di un cartella contenente il file zip, e l’inclusione nel function.php, o sbaglio?

    Rispondi
    • Andrea Barghigiani

      Ciao Fabio,

      certo che puoi usare la libreria anche per i tuoi temi child. Onestamente non ho mai fatto delle prove dal vivo ma questo file presente all’interno dello starter theme di Genesis, ovvero di un child theme, mi fa ben sperare 😀

      Spero di averti risolto il problema e comunque fai molta attenzione quando si tratta del file .zip perché ti devi assicurare che il percorso faccia riferimento alla cartella del tuo child piuttosto che del tema parente. Potresti impostare il percorso con questa stringa: 'source' => get_template_directory_uri() . '/lib/plugins/some-plugin.zip',

      A presto e non esitare a rispondere per qualsiasi dubbio,
      Andrea

      Rispondi