Come scrivere un semplice plugin per WordPress

Ti sei mai chiesto come programmare un plugin per wordpress in php e perchè così tanti programmatori riescono ad avere successo scrivendo plugin? La riposta è semplice, WordPress fa funzionare ormai un terzo dei siti web e i plugin sono diventati un mercato davvero stimolante per aziende e web  developer che voglio emergere!

Fare modifiche direttamente sui files di  WordPress è una scorciatoia facile che ti permette di usare la potenza del codice php, ma resta il problema degli aggiornamenti e dei cambi di tema. Ti sarà forse capitato di fare piccole modifiche ad esempio sul file footer.php e di vedere il tuo amato codice sparire dopo avere cambiato tema.

Dopo gli aggiornamenti  ( inevitabili )  il file footer.php sarà rimpiazzato dal nuovo file e dovremo ricominciare daccapo. Lo stesso può capitare modificando il core di WordPress che teoricamente non si dovrebbe mai toccare. La soluzione prevista dai progettisti di WordPress è quella di creare un plugin apposito e metterci dentro il nostro codice.

Come scrivere un plugin usando PHP!

Per imparare a programmare un plugin per wordpress non c’è niente di meglio di un esempio pratico e perciò ho preparato un plugin semplicissimo ma in grado comunque di fare qualcosa di utile! In questo caso il plugin, che chiamerò “Social buttons” serve a condividere un post su Facebook e Twitter con due pulsanti molto “grafici“, per l’esattezza sono quelli che vedi in fondo a questa pagina.

Supponiamo che tu sia sul terminale di un server cloud o nel prompt del tuo PC locale:

esegui questi comandi:

  • cd wp-content
  • mkdir social-buttons
  • cd social-buttons
  • vi index.php
  • incolla il contenuto del file sottostante

  • premi ESC
  • scrivi: “x!” per salvare.

 

Come funziona il codice del plugin, riga per riga

la riga 3 serve a identificare il plugin tra le  migliaia di altri plugin di wordpress,
la riga 4 specifica la home page dove trovare ulteriori informazioni sul plugin,
le righe 5, 6, 7 e 8 definiscono la descrizione da visualizzare nel cruscotto di WordPress, la versione, l’ autore e la sua pagina bio.

La riga 11 è un HOOK e serve a spiegare a wordpress quando fare scattare le modifiche definite nel secondo parametro, in questo caso “dsse_sharing” che è una funzione, la riga 12 accoda il caricamento dello script css, sempre con il secondo parametro che specifica la funzione.

La riga 15 si occupa di dichiarare la funzione, la 16 trova il percorso esatto di QUESTO plugin sul file system del server, la riga 17 carica e accoda ai file  di WordPress il nostro nuovo file ‘css/style.css‘, la riga 18 chiude la funzione.

La riga 21 dichiara la funzione e e riceve come parametro in entrata il contenuto del post,
la riga 23 prepara la prima scritta da aggiungere al codice html,
la riga 24 aggiunge un tag html, in questo caso un </br> per aggiungere una riga vuota,
la riga 26 richiama la variabile globale di WordPress ove sono conservate le informazioni sul post,
le righe 27 e 28  ottengono l ‘ identificativo del post da passare agli url di condivisione,
la riga 30 lancia il post sharer di facebook e inserisce l’ URL ottenuto a riga 6,
la riga 32 lancia lo sharer di twitter,
e infine la riga 37  ritorna il contenuto così modificato alle routines di WordPress.

Come cambiare l’estetica del plugin – il CSS

esegui questi comandi:

  • mkdir css
  • cd css
  • vi style.css
  • premi “i” per aggiungere e incolla il testo sottostante

  • scrivi “:x!” per salvare
  • vai alla consolle di comando di WordPress
  • cerca tra i plugin
  • trova social-buttons
  • premi attiva
  • Finito!

Da questo momento alla fine di ogni pagina appariranno i due bottoni di condivisione Facebook e Twitter. Il plugin non sostituisce quelli commerciali ma ha il vantaggio di non usare grossi files js che rallentano WordPress. Se tieni alla velocità del blog non è una cosa da poco e inoltre puoi modificare il semplicissimo codice PHP per adattarlo allr tue esigenze! Se incontri delle difficoltà nella programmazione mandami il tuo codice nei commenti e ti risponderò entro 24 ore.

Qui un riepilogo delle pagine che ho usato per scrivere questo plugin:
[1] stackoverflow.com    [2] buttonoptimizer.com