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...

WordPress e SPAM: quando Akismet non basta

WordPress e SPAM: quando Akismet non basta

Inizia oggi una nuova miniserie del buon Camu, impegnato in una lotta contro lo spam. Qualche settimana fa ho subito un'ondata massiccia di spam sul mio blog, come mai m'era capitato. Intendiamoci, il mio blog si colloca nella parte bassa della coda lunga, non ho milioni di visitatori al giorno, e quindi anche gli spammer ...
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 ...
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 ...
Impostare l'anteprima quando condividiamo un post su Facebook

Impostare l’anteprima quando condividiamo un post su Facebook

Quello che voglio condividere con voi oggi è un trucchetto facile, ma molto utile, che sicuramente pochi di voi conoscono ed utilizzano. Provate a condividere questo post su Facebook, pubblicandolo tramite la vostra bacheca oppure cliccando sull'icona di Facebook appena sotto l'articolo. Cosa notate? Vi si aprirà la finestra per condividerlo ma, a differenza ...
Plugin WordPress per pubblicare su Twitter i nostri post

Plugin WordPress per pubblicare su Twitter i nostri post

Terza ed ultima parte della miniserie realizzata da Camu: dopo averci introdotti agli Hook di WordPress e alle API di Twitter, è giunto il momento di mescolare bene gli ingredienti. Ora che abbiamo a disposizione tutti gli strumenti, non rimane che metterli insieme per realizzare il plugin che scrive automaticamente sul canale Twitter. Vorrei precisare ...

23 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