BigThink

Un gancio per attaccarsi a WordPress

WordPress Hook

Con questo primo Guest Post inizia una miniserie di articoli scritti da Camu, che ci condurrà passo-passo nella personalizzazione del nostro blog WordPress.

Una delle funzionalità che fanno di WordPress una piattaforma su cui sviluppare funzionalità personalizzate per il proprio sito, è la capacità di essere esteso tramite i cosiddetti plugin.

Possiamo fare l’analogia con i mattoncini della Lego: ogni pezzo può avere forma e dimensione diversa, ma tutti hanno quelle piccole protuberanze che consentono di incastrarli l’uno all’altro.

Gli sviluppatori di WordPress hanno usato lo stesso concetto: gli hooks, che in Italiano potremmo tradurre con “agganci”. Mai termine è stato più azzeccato, secondo me, perché esprime anche in maniera visuale questo meccanismo.

Praticamente ogni azione che “succede” in WordPress è dotata di un gancio, a cui possiamo attaccare le nostre funzioni personali. Per azioni intendo, ad esempio, il fatto che l’amministratore si autentica nel pannello di controllo, o che un visitatore lascia un commento, oppure ancora che venga pubblicato un nuovo articolo da qualche redattore.

Per funzioni personali intendo una cosa del tipo “Invia una email all’indirizzo pinco@pallino.it” oppure “Rimuovi tutte le lettere maiuscole dal contenuto”. Ognuna di queste funzioni accetta uno o più parametri in ingresso e restituisce un valore in uscita (i dettagli vengono forniti dall’esaustivo manuale di WordPress), come in:

function inviaMessaggio($id_articolo){
    mail('pinco@pallino.it', 'Un nuovo articolo su BigThink', 'Su BigThink ho appena scritto un nuovo articolo');
    return $id_articolo;
}

A questo punto basta mettere insieme azioni e funzioni: quando viene pubblicato un nuovo articolo, invia una email di avviso:

add_action('publish_post', 'inviaMessaggio');

L’azione da usare si desume dal manuale di WordPress.

Quindi si “impacchetta” tutto in un file PHP, aggiungendo il nome del plugin, l’autore e la sua email

<?php
/*
Plugin Name: Invia Email
Description: Manda un messaggio  quando si pubblica un nuovo articolo
Author: Camu
Author URI: http://www.duechiacchiere.com/
*/


function inviaMessaggio($id_articolo){
    mail('pinco@pallino.it', 'Un nuovo articolo su BigThink', 'Su BigThink ho appena scritto un nuovo articolo');
    return  $id_articolo;
}

add_action('publish_post', 'inviaMessaggio');
?>

Per completezza, va detto che esiste anche un altro modo per “agganciare” le proprie funzioni a WordPress: i filtri. Il concetto è simile, ma stavolta invece che personalizzare le azioni, si cambiano le funzioni del sistema, generalmente usate quando si scrive un nuovo tema.

La miniserie continua:


Autore: Camu di DueChiacchiere

Leggi anche...

Usare TinyMCE come editor dei nostri plugin WordPress

Usare TinyMCE come editor dei nostri plugin WordPress

Settimana scorsa vi ho spiegato come inserire l'editor di WordPress nei vostri plugin, tuttavia dopo svariati test, ho trovato alcuni limiti nello script che vi ho proposto: la parte di HTML non funziona; è compatibile solo con le ultime versioni di WordPress; non è possibile inserire più di un editor nella stessa pagina. Alla luce di questi ...
WordPress: trovare la categoria corrente e quella padre

WordPress: trovare la categoria corrente e quella padre

Chi è solito creare template per WordPress o chi si è trovato a dover modificare il proprio avrà notato che le funzioni che abbiamo a disposizione per lavorare con le categorie di WordPress non sono poi molte. Spesso bisogna, infatti, andarsi a spulciare documentazione e sorgenti, per trovare il modo di fare quello ...
WordPress tip: 10 funzioni per gestire gli utenti

WordPress tip: 10 funzioni per gestire gli utenti

Torniamo a parlare di come personalizzare WordPress e vediamo in particolare le funzioni relative agli utenti, non tutte documentate dal Codex. Chi è solito creare temi o plugin per WordPress può spesso aver bisogno di gestire i dati degli utenti, i permessi ed i loro ruoli. Vediamo allora delle situazioni comuni e come possiamo ...
Una barra con OKNOtizie, Facebook e Twitter per WordPress

Una barra con OKNOtizie, Facebook e Twitter per WordPress

In molti mi hanno chiesto come ho fatto a mettere sotto ogni articolo la barra di OKNotizie, con il pulsante di Facebook e quello di Twitter. E' molto utile perchè permette di avere sott'occhio i tre network principali per la diffusione dei nostri post. Ho deciso allora di scrivere questo articolo, così che tutti ...
Integrare il pulsante "Condividi" con Facebook Connect

Integrare il pulsante “Condividi” con Facebook Connect

Praticamente tutti i blog hanno ormai un pulsante "Condividi su Facebook" che apre una noiosa finestra popup esterna per pubblicare l'articolo sulla bacheca del proprio profilo. E se invece integrassimo questa funzionalità con Facebook Connect? Cosa succederebbe? Semplice, invece di avere una finestra esterna, si aprirebbe un layer interno alla pagina con il famoso ...

19 Commenti

  1. Molto utile sapere la differenza tra “add_filter” e “add_action” :-)
    Ho opportunamente modificato il mio tema utilizzando la funzione adatta :-)

    Grazie.

    25 gennaio 2011, 03:07
  2. ma questa miniserie ha avuto un seguito?!

    25 novembre 2009, 17:47
    • E’ una cosa che ho notato anche io: da uno degli articoli non è possibile risalire alla serie completa. Ghido, qui bisogna sistemare la faccenda :D

      25 novembre 2009, 18:00
      • ah quindi ci sono! questo è l’importante! :)
        ora cerco, grazie!

        25 novembre 2009, 18:02
        • Caspita, avete ragione!
          Ho provveduto ad inserire alla fine di ogni articolo i dovuti rimandi a quelli successivi.

          Grazie e scusate la svista ;)

          25 novembre 2009, 19:22
          • emiliano

            ok ma qualcuno mi risponde?

            grazie

            25 novembre 2009, 19:56
  3. ciao a tutti e complimenti per l’iniziativa.

    questi comandi sono per un’installazione in locale o li posso sviluppare anche per il mio spazio http://retuvasa.wordpress.com
    totalmente on line?

    grazie

    25 novembre 2009, 17:44
    • Non ho mai usato wordpress.com, però non mi pare sia possibile inserire plugin personalizzati…

      25 novembre 2009, 20:05
  4. Veramente interessante. E speriamo lo siano anche i prossimi :)

    17 settembre 2009, 14:21
    • Lo spero anche io :) Beh, ovviamente se qualcuno si mette a sperimentare con i plugin, ci faccia sapere!

      17 settembre 2009, 15:25
  5. Sicuramente saranno ottimi interventi ;) Complimenti Camu.

    17 settembre 2009, 13:05
  6. Mi interessa molto. Vi seguirò anche se sono un po’ duro di comprendonio.

    16 settembre 2009, 18:19
    • Proprio per questo ho cercato di usare un approccio semplice e discorsivo :) Accessibile anche ai meno smaliziati…

      16 settembre 2009, 19:38
  7. Meraviglioso :) thx!

    16 settembre 2009, 17:00
  8. @adedip, “tecnicamente” l’hook è l’azione a cui vuoi agganciarti (nel mio esempio, publish_post), mentre add_action è il modo per dire a WordPress che vuoi agganciare qualcosa a quell’hook. Però tecnicismi a parte, il tuo procedimento è corretto :) Attento, quando scrivi la funzione, ad usare i parametri in ingresso specificati dal manuale, anche se non li usi poi nel corpo. Altrimenti rischi che non funzioni più nulla…

    16 settembre 2009, 16:07
  9. quindi riassumendo:

    1. scrivo una funzione che faccia quello che mi serve..
    2. con add_action indico quando “triggerare” la mia nuova funzione? è add_action l’hook?

    16 settembre 2009, 15:57
  10. Non posso che ringraziare BigThink per l’ospitalità ;)

    16 settembre 2009, 15:17
    • E io ringrazio te per l’ottimo articolo e quelli futuri :)

      16 settembre 2009, 18:16
  11. =) Interessante rubrica, la seguirò con interesse

    16 settembre 2009, 12:03

4 Citazioni