Realizzare un plugin per WordPress

E così vorresti realizzare un plug-in per WordPress ma non hai ancora capito dove mettere le mani? Nessun problema, se leggerai questo articolo fino in fondo tutto (spero) ti sarà più chiaro. Prima di iniziare dobbiamo accordarci sui motivi per cui ci troviamo qui…

Perché scrivere un Plug-In?

Capita spesso, anzi spessissimo, di dover modificare il comportamento di un sito fatto con WordPress. Chi ha qualche conoscenza di PHP può provare a modificare direttamente il codice, ma questa non è una buona idea perché qualsiasi modifica sarebbe perduta al primo aggiornamento. Tanti articoli e tutorial che si trovano in rete suggeriscono di aggiungere tutte le funzionalità necessarie all’interno del file functions.php del tema in uso, un ottimo posto per il nostro codice, almeno fino a quando non cambiamo tema. Scrivere un plug-in è la soluzione migliore per un sacco di buoni motivi:

  • Tutte le funzionalità rimangono indipendenti dal tema, così non abbiamo bisogno di rifare tutto da capo ogni volta che cambiamo template.
  • Non corriamo il rischio di “rompere” la nostra installazione di WordPress, e se qualcosa va storto possiamo sempre disabilitare il plugin.
  • Se facciamo un buon lavoro magari possiamo decidere di distribuire il nostro lavoro, consentendo ad altri utenti di installare il nostro plug-in sul loro sito WordPress.

Ma è difficile?

Scrivere un plug-in per WordPress è molto più facile di quanto non si creda comunemente. Un plug-in può essere composto da un singolo file .PHP o da una cartella di file, la cosa più importante è collocare questi file nella giusta posizione. Tutti i plug-in installati in un sito WordPress si trovano all’interno della cartella

/wp-content/plugins/

Se inseriamo un file .PHP dentro questa cartella, e se questo file possiede alcuni semplici requisiti, WordPress lo interpreterà come plug-in ed eseguirà il codice in esso contenuto.

Non ci credo… dimostramelo!

Ok, hai a disposizione un sito WordPress per fare un esperimento? Allora fai come ti dico…

  • Crea un file all’interno della cartella /wp-content/plugins/.
  • Il nome del file non ha nessuna importanza, ma dovrà avere estensione .PHP.
  • Scrivi all’interno del file il seguente codice:
<?php
/*
Plugin Name: Un gran bel plug-in!
*/
?>
  • Accedi al backend di WordPress e dai un’occhiata alla pagina di gestione dei plug-in, dovresti vedere questo:
Un Gran Bel Plug-In in WordPress

Un Gran Bel Plug-In in WordPress

Naturalmente il nostro plug-in in questo momento è del tutto inutile, non fa nulla… Questo esperimento ci è servito a comprendere un meccanismo di base: qualsiasi file o cartella all’interno di /wp-content/plugins/ può essere un plug-in per WordPress.

Sono pronto, facciamolo!

Si, siamo pronti per realizzare un plug-in funzionante per WordPress… ma cosa vogliamo che faccia? Se state leggendo questo articolo è molto probabile che non abbiate molta esperienza di programmazione, quindi proporrei di mantenere le cose semplici per quanto possibile. Se siete d’accordo…

  • Il nostro plug-in sarà composto di un unico file, esattamente come quello che abbiamo realizzato per l’esperimento di poco fa.
  • Il nostro plug-in eseguirà una singola operazione, molto semplice.
  • Il nostro plugin non scriverà nulla sul database.
  • Il nostro plug-in non avrà opzioni né un pannello di controllo.
  • Se questo tutorial avrà successo ne seguiranno altri che aggiungeranno tanti mirabolanti superpoteri al nostro plug-in.

Adesso dobbiamo pensare a qualcosa che WordPress non fa e che noi vogliamo che faccia…

Vorrei riuscire a inserire un’interruzione di riga <br /> all’interno del titolo dei miei articoli su WordPress.

Ottima idea! WordPress non consente di spezzare i titoli, eppure questa è un’esigenza abbastanza comune. Il nostro primo plug-in farà semplicemente questo: sostituirà ogni virgola all’interno di ogni titolo con un’interruzione di riga. Tutto quello che dobbiamo fare adesso è creare un file con un nome comprensibile e scrivere al suo interno il seguente codice:

< ?php
/*
Plugin Name: SpezzaTitolo
Description: Spezza il titolo degli articoli in corrispondenza di una virgola ",".
Version: 1.0
Author: Daniele Alessandra
Author URI: http://www.danielealessandra.com/
*/

add_filter( 'the_title', 'titlebreaker_do' );

function titlebreaker_do ($title) {
    $title = str_replace(",", '<br />', $title);
    return $title;
}
?>

Tutto qua!

  • Salviamo il file con il nome SpezzaTitolo.php.
  • Carichiamo il file all’interno della cartella /wp-content/plugins/ di un qualsiasi sito WordPress.
  • Controlliamo che esiste nella schermata dei plug-in di WordPress, dovrebbe avere questo aspetto:
Il Plugin SpezzaTitolo nella finestra Plug-In di WordPress

Il Plugin SpezzaTitolo nella finestra Plug-In di WordPress

  • Inseriamo una virgola nel titolo di un qualsiasi articolo e salviamolo…

Davvero… tutto qua.

Cosa abbiamo fatto esattamente?

Il poco codice del nostro plug-in si può dividere in tre parti. Tutto quello che si trova tra /* e */ è un commento, non viene eseguito, però WordPress usa le informazioni che inseriamo in questa parte per recuperare le informazioni sull’autore, sul copyright, sulla versione e tutto quello che vorremo comunicargli. Se questo articolo avrà dei seguiti potrei descrivervi tutto quello che è possibile inserire in questa parte del codice, se non dovessimo avere il tempo potete sempre sbirciare il codex ufficiale di WordPress relativo a questo aspetto. Subito topo i commenti c’è l’esecuzione di un Metodo chiamato add_filter. Assieme ad add_action, add_filter è il metodo con cui si modifica il comportamento di WordPress. Con add_filter aggiungiamo un Filtro, con add_action (che non stiamo usando) avremmo aggiunto un’Azione.

  • In WordPress un Filtro si usa per modificare un valore mentre WordPress sta per usarlo, nel nostro caso modifichiamo il titolo.
  • Un’Azione ha un comportamento simile, ma più che per modificare un valore si usa per eseguire un determinato codice in un determinato momento.

I Filtri e le Azioni utilizzano dei Ganci, in inglese Hooks, se conosciamo il giusto Gancio possiamo far fare a WordPress quello che vogliamo, esattamente nel momento in cui vogliamo che lo faccia. Se siete curiosi potete dare un’occhiata alla lista completa dei Ganci disponibili in WordPress. Il Gancio da noi utilizzato si chiama ‘the_title’, è proprio quello che ci serviva. Il secondo parametro di add_filter stabilisce il nome della Funzione che modificherà effettivamente il titolo, questa Funzione si chiama titlebreaker_do ed è il terzo ed ultimo elemento del nostro plug-in. La Funzione title_breaker_do riceve come parametro il titolo, sostituisce la virgola con il tag <br /> e lo restituisce (return). Ecco come tutto funziona.

Conclusione

In questo articolo abbiamo visto che un plug-in per WordPress può essere costruito anche con un singolo file, inserito all’interno della giusta cartella. Inoltre abbiamo scoperto che è possibile far fare delle cose a WordPress aggiungendo Filtri o Azioni, e abbiamo intuito che WordPress può fare molto più che dei titoli su più righe. Da parte mia, mi sarebbe piaciuto che qualcuno mi avesse detto queste cose cinque o sei anni fa, anziché lasciarmi credere che i plug-in di WordPress fossero opere di stregoneria, mi sarei avvicinato all’argomento con meno timore. Se vi è piaciuto leggerlo, e se volete altri articoli per approfondire l’argomento, o se avte la necessità di realizzare uno specifico plug-in ma non sapete da dove cominciare… i commenti a questo servono. Se siete pigri e non volete scrivere neanche le poche righe qui sopra, potete scaricare il plugin SpezzaTitolo in formato .ZIP, pronto da installare sui vostri WordPress.

Inserisci nome e indirizzo email per iscriverti alla mia newsletter e ricevere il file immediatamente.
In breve: i dati inseriti in questo modulo saranno utilizzati per inviarti il link per scaricare il file che desideri, saranno conservati da un servizio esterno che si chiama MailChimp e in qualsiasi momento potrai cancellare la tua iscrizione al seguente link: https://danielealessandra.us7.list-manage.com/unsubscribe?u=546bebc381e525372d2120083&id=326af7d230.

Puoi leggere l'informativa completa cliccando sul link Privacy Policy che trovi dovunque su questa pagina, e comunque visitando in qualsiasi momento l'indirizzo https://www.danielealessandra.com/privacy-policy/
Ho letto e accetto l’informativa sulla privacy.

Potrebbero interessarti anche...

2 Risposte

  1. Danilo ha detto:

    Bella la sfida di convincerti…mumble mumble…vediamo un po’…Sono appassionato di PHP fin dalla sua nascita, quando mi dilettavo a smanettare con ASP e creare una connessione ad un dB era un’impresa improba! Col PHP (si parla di fine anni ’90 come ben saprai) tutto è stato più facile. L’ho imparato un po’ smanettando e poi ho cominciato a scrivere tutorial per xoops un noto CMS concorrente di PhpNuke. Ed infine sono diventato webmaster di xoopsit.org che ho modificato in xoopsitalia.org per poi cederlo ad un elemnto dello staff. Perchè ti dico questo? Per farti capire che in fatto di tutorial non sono di primo pelo e il tuo modo di porti mi è piaciuto moltissimo. Diretto, schietto, semplice ed efficace. Fai vedere un risultato concreto con pochi click e stiamo parlando della creazione di un plugin. Viene naturale il desiderio di leggere altri tuoi articoli su questo argomento. Ci sai fare!

    TI HO CONVINTO? :)

    • Daniele Alessandra ha detto:

      Ciao Danilo, grazie per il tuo feedback. Questo articolo tra pochi giorni compirà tre anni e tu sei probabilmente la prima persona che lo ha letto tutto, quindi non sembra che abbia avuto un gran successo ;)
      Purtroppo è difficile pubblicare cose interessanti che attraggano pubblico: la gente apprezza contenuti brevi, meglio se basati su gossip o teorie complottistiche.
      Non è il mio genere e poco alla volta il mio impegno su questo blog è scemato.

      Grazie davvero per il tuo commento, mi ha fatto veramente bene, mi fa tornare la voglia di scrivere contenuti interessanti anche se so che non potrò farlo tanto presto, il mio quotidiano non me lo permette, ma forse…

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.