Sviluppo di un Plugin WordPress

Dove Inizia lo Sviluppo di un Plugin

Con questo primo articolo voglio iniziare a trattare un argomento che fin troppo spesso non è stato affrontato nel dettaglio in questo blog, la creazione di un plugin che aggiunga nuove funzionalità alla nostra installazione WordPress!

Contenuti Extra

Crea una Widget con le Twitter API 1.1

In questa guida scoprirai come sia possibile creare un plugin WordPress in grado di inserire una widget per mostrare tutti i tuoi tweet.

  1. Dove Inizia lo Sviluppo di un Plugin
  2. Come Creare la tua Prima Widget
  3. Collegati a Twitter ed Ottieni i tuoi Tweet con un Plugin

Non voglio certo sminuire i nostri precedenti articoli come 7 Cose che Avrei Voluto Sapere prima di Scrivere un Plugin del nostro Eugenio Petullà oppure l’articolo I Consigli di Luca nello Sviluppo di un Plugin dove è presente anche il video della presentazione che Luca Bartoli ci ha fornito ad un precedente WordCamp.

Ma il punto fondamentale è abbiamo affrontato l’argomento nel dettaglio? La mia personale risposta (e autocritica) è un forte NO!

Con questo non voglio certo colpevolizzarmi o darmi la classica zappata sui piedi, piuttosto voglio confessarti che la mia intenzione è quella di permetterti di diventare uno sviluppatore WordPress completo ed è per questo motivo che ho deciso di creare questa mini-serie.

Come abbiamo scoperto anche nell’intervista con Pietro Bellomo, una persona che modifica i temi acquistati da ThemeForest non può definirsi sviluppatore; non è cattiveria, semplicemente se lavori in questo modo non puoi definirti tale.

Detto questo, spero proprio che questa nuova serie che punta a mostrarti come usare le Twitter API 1.1 all’interno di un plugin sia di tuo interesse e non vedo l’ora che ti mi dica che cosa ne pensi attraverso i commenti 😉

Che Cosa Faremo in Questa Serie

Eccoci quindi giunti al momento in cui ti presento i contenuti che ho deciso di trattare con questa piccola serie, sei curioso? Non devi far altro che continuare a leggere 😀

  • creazione di un plugin – dato che stiamo aggiungendo delle funzionalità alla nostra installazione WordPress, al posto di aggiungere tutto il codice nel nostro functions.php, creeremo un plugin;
  • usare le Widget API – tra le varie API che WordPress ci mette a disposizione, abbiamo la possibilità di estendere la classe Widget per sfruttare i metodi e le proprietà che ci facilitano il compito di creare questi utilissimi elementi;
  • collegarsi alle Twitter API – proprio come molti altri servizi online, anche Twitter ci permette di collegarsi alle sue API e di fare diverse operazioni con i contenuti presenti. Trattando questo aspetto ti mostrerò come sia possibile registrare una nostra applicazione nella sezione Developer e come sfruttare una libreria che ci permetta di connetterci a queste API attraverso le oAuth;
  • buone pratiche di sviluppo – ci sono alcuni aspetti come il tipo di IDE che puoi usare oppure come preparare l’ambiente di sviluppo che ti permetterà di sviluppare al meglio il tuo plugin;
  • sfruttare le Transient API – qua si parla di ottimizzazione del nostro codice e sfrutteremo un semplice sistema di cache offerto da queste API, in questo modo non rischieremo di superare i limiti imposti dalle Twitter API e non andremo ad appesantire il nostro WordPress.

Insomma, le cose che ti presenterò sono veramente molte e ce ne sarebbero moltissime altre da conoscere per creare plugin con WordPress; ma partiamo dalle cose semplici e successivamente potrai proseguire nel corso approfondito che sto creando per skillsAndMore 😉

Cose da Fare Prima di Iniziare lo Sviluppo

Ovviamente, se non è la prima volta che ti trovi a leggere un articolo di wpAndMore, saprai che da queste parti parliamo principalmente di sviluppo. Quindi argomenti come un buon editor di testo e la disponibilità di un server locale sul quale fare i tuoi esperimenti non dovrebbe essere qualcosa di nuovo, piuttosto un presupposto che qualsiasi sviluppatore WordPress conosce e padroneggia.

Se mi leggi da diverso tempo avrai notato che nel tempo ho cambiato diversi IDE, ho iniziato la mia carriera utilizzando Aptana Studio per proseguire nell’uso di Brakets e successivamente Sublime Text. In questo corso andremo invece ad utilizzare NetBeans e non tanto perché questo sia migliore dei precedenti, ormai dovresti sapere che IMO non esiste uno strumento migliore, piuttosto esistono degli strumenti più adatti alle situazioni in cui ci troviamo.

Ecco, durante i miei esperimenti ho trovato NetBeans un ottimo alleato nello sviluppo di un plugin WordPress perché, anche se manca di alcune caratteristiche di Sublime Text che ci velocizzano in modo incredibile lo sviluppo (come le interessanti scorciatoie da tastiera), devo dire che la sua capacità di leggere i commenti e il sostegno che ci offre nello sviluppo sono di gran lunga più comodi di quelli offerti dal precedente.

Per questo motivo, anche se non ti spiegherò nel dettaglio come impostare questo IDE (dato che fa anche gran parte del lavoro da solo) per questa piccola serie ho deciso di utilizzare questo editor al posto del più veloce Sublime.

Adesso che abbiamo presentato il nuovo editor che vedrai in azione all’interno dei video cerchiamo di capire che cosa altro ti servirà per iniziare a sviluppare il plugin:

  • una fresca installazione – dato che andremo a sviluppare il tuo primo plugin, guardiamo di iniziare anche da una nuova pulita installazione di WordPress. Se sei uno sviluppatore questo non dovrebbe essere un problema ma se hai bisogno di una rinfrescatina qua trovi un video che ti mostra passo passo l’installazione con il metodo classico mentre qua puoi scoprire come installare WordPress grazie a WP CLI;
  • installa un po’ di contenuto – questo non è uno step obbligatorio, ma lavorare con l’unico articolo Ciao Mondo di un’installazione WordPress può sembrare abbastanza noioso. Per questo motivo ti consiglio di installare il contenuto di WP Test, generalmente utilizzato per controllare la qualità dei nostri temi ma molto utile anche in questo contesto;
  • plugin utili allo sviluppo – i plugin di WordPress non sono utili soltanto alle persone che non sanno sviluppare, infatti grazie al nostro Eugenio Petullà ho scoperto un plugin che ci permette di controllare qualsiasi aspetto durante il nostro sviluppo. Grazie al plugin Developer avremo la possibilità di installare qualsiasi plugin sviluppato con l’intenzione di creare un ambiente di sviluppo che ci permetta di scoprire gli errori e di ottimizzare al meglio il nostro codice;
  • crea una cartella per il plugin – l’ultimo passo da prendere prima di andare a scrivere un po’ di codice è quello di entrare all’interno della cartella wp-content/plugins della nostra installazione e creare la cartella twitter-widget-api.

Adesso hai preparato il tuo ambiente e sei pronto ad iniziare il tuo sviluppo, prima ancora di iniziare ci sono alcune buone pratiche che voglio discutere con te; se tu ne hai altre non esitare a condividerle con noi attraverso i commenti 😉

Buone Pratiche nello Sviluppo di un Plugin

Ammettiamolo, questa non è una di quelle lezioni piene di codice dove ci sono un sacco di nuove funzioni e strutture che potrai applicare nelle tue nottate di sviluppo, ad essere sincero in questa prima lezione non andremo assolutamente nel dettaglio dello sviluppo; quello che stiamo facendo è preparare il campo per fare in modo che il nostro processo di sviluppo sia il più tranquillo possibile.

Partiamo iniziando a parlare della struttura del plugin. Al momento hai la tua cartella wp-content/plugin/twitter-widget-api manon c’è ancora niente al suo interno, che cosa dovresti inserire?

La prima cosa che dovrai creare è un file index.php all’interno del quale non dovrai inserire assolutamente niente, volendo puoi inserire questa riga:

Forse adesso ti stai chiedendo ma perché devo creare un file se poi non lo uso? La risposta semplice, perché in questo modo se qualcuno riesce a navigare all’interno delle tue cartelle dell’installazione WordPress come wp-content, wp-include o twitter-widget-api (come nel nostro caso) non potranno vedere i file contenuti al suo interno e questo è molto importante per aggiungere un po’ di sicurezza e rispettare le buone pratiche.

Altro punto non fondamentale, ma considerato comunque buona pratica, è quello di creare il file principale del nostro plugin e nominarlo con lo stesso nome della cartella. Nel nostro caso, il secondo file che devi creare sarà twitter-widget-api.php. Ripeto, questo non è obbligatorio ma è una delle buone pratiche che ci consigliano gli sviluppatori WordPress e dato che non è niente di difficile, perché non farlo anche noi?

Dato che questo è il file principale del nostro plugin ovviamente dovremo inserire la testata che permette a WordPress di riconoscere questo plugin. Questa testata ci è stata presentata la prima volta nell’articolo di Eugenio inserito precedentemente, ma se non hai voglia di cambiare pagina puoi trovarlo tranquillamente qua sotto:

Queste sono le stesse informazioni che aiutano WordPress ad aggiungere titolo, descrizione ed altre informazioni interessanti all’interno del repository o addirittura all’interno del nostra stessa installazione.

La Testata di un Plugin vista dal backend di WordPress

Ecco come vengono usate le informazioni

Ecco che adesso sei pronto a scrivere le tue prime righe di codice all’interno del file twitter-widget-api.php ma c’è una cosa molto interessante che dovresti sapere. Quando sviluppiamo plugin che vogliamo rendere pubblici, sarà possibile riscontrare qualche conflitto.

Infatti, quando sviluppiamo con questa piattaforma ci sono buone possibilità che il nostro plugin installato non sia l’unico che stia lavorando per aggiungere funzionalità al nostro WordPress. La presenza di molteplici plugin installati potrebbe comportare alcuni conflitti perché, se due plugin condividono gli stessi nomi funzioni questi entreranno in conflitto restituendoci degli errori o peggio ancora con la blank page of death.

Per questo motivo, onde evitare inutili problemi e richieste di supporto, è sempre bene rinominare le nostre funzioni aggiungendo un pizzico di personalità:

Come confermano gli stessi commenti, la prima dichiarazione della funzione potrebbe comportare dei rischi perché molti altri sviluppatori potrebbero crearla, onde evitare questi problemi ho deciso di inserire le mie iniziali (Andrea Barghigiani) e le iniziali del mio plugin (Twitter Widget Api) che si traduce nel prefisso ab_twa_.

Questo prefisso dovrà essere utilizzato per tutte le funzioni che andremo a creare nel nostro plugin.

La programmazione ad oggetti e le nuove funzionalità delle ultime versioni del PHP permettono di risolvere questi problemi di namespace, ma sono argomenti piuttosto avanzati che potremmo andare a trattare in un secondo momento.

La Struttura del Plugin è Importante

Arriviamo alla conclusione di questo primo articolo per parlare anche dell’importanza che può avere la struttura della nostra cartella. Se vai a controllare la struttura del Boilerplate Plugin sviluppata dal nostro Daniele Scasciafratte puoi nostare che all’interno di un plugin non sono presenti soltanto file ma anche cartelle.

In questo corso non andremo ad utilizzare la struttura proposta da Daniele soltanto perché non ne abbiamo bisogno, ma ti consiglio di prenderla in considerazione quando le tue competenze nello sviluppo di un plugin diventeranno più raffinate ed avrai bisogno di includere diverse librerie; allora una struttura come quella proposta nel Boilerplate potrà tornarti utile.

Conclusioni

Sei giunto al termine di questa prima lezione dove hai scoperto alcune caratteristiche fondamentali che stanno alla base dello sviluppo di un plugin, dalla prossima inizieremo a divertirci veramente dato che ti mostrerò come sia possibile creare la tua prima Widget.

Per il momento è tutto, ma se devo essere onesto con te sto morendo dalla voglia di sapere che cosa ne pensi di questa serie, probabilmente se sei uno sviluppatore smaliziato durante questa lezione potrai esserti annoiato ma ti assicuro che dalla prossima lezione inizieremo a fare sul serio e inizierai ad apprendere delle pratiche di sviluppo che sono veramente interessanti!

Se intanto vuoi scoprire di più per quanto riguarda lo sviluppo ad oggetti o altre nuove pratiche per lo sviluppatore moderno non hai che da chiedere e sarò più che contento di aiutarti.

Lascia il tuo Pensiero