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 [email protected]” 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('[email protected]', '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('[email protected]', '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...

Video Tutorial: Installare Facebook Connect su WordPress

Video Tutorial: Installare Facebook Connect su WordPress

Vi ricordate la mia guida per installare Facebook Connect su WordPress? Ha avuto ed ha ancora parecchio successo: è stata segnalata da moltissimi siti ed ha superato i 200 commenti. L'ho continuamente aggiornata alle nuove versioni del plugin ed ottimizzata per le vostre esigenze. Ora Stefan Des ha pubblicato un video tutorial, basato sui primi ...
WordPress: mostrare TOT parole di anteprima di un post

WordPress: mostrare TOT parole di anteprima di un post

Oggi vi spiegherò un piccolo tip per il vostro tema WordPress, veramente banale ma che in molti spesso mi chiedono. Come fare a mostrare solamente le prime 100 parole di un post? E' infatti una necessità comune quella di visualizzare in home page solamente l'estratto di ogni articolo, magari impostando noi stessi il numero ...
WordPress: Dare agli spammer la possibilità di redimersi

WordPress: Dare agli spammer la possibilità di redimersi

Si conclude oggi la miniserie di Camu: dopo aver visto come va modificato l'.htaccess e come farlo in automatico, oggi impariamo a personalizzare la pagina di errore. Dai commenti sul mio blog alla prima puntata di questa miniserie è venuta fuori un'interessante discussione su cosa "vedono" gli spammer presenti nella lista nera quando tentano ...
Ottimizzare WordPress per i motori di ricerca, senza plugin

Ottimizzare WordPress per i motori di ricerca, senza plugin

Uno dei plugin che la maggior parte dei blog usa per l'ottimizzazione delle pagine sui motori di ricerca è il famoso All in One SEO Pack. Sicuramente un ottimo plugin, nulla da dire, ma se vi trovaste nella situazione di dover alleggerire il vostro sito in quanto utilizza troppa RAM e CPU, dovreste iniziare ...
WordPress: eliminare i contenuti duplicati con i Canonical link

WordPress: eliminare i contenuti duplicati con i Canonical link

Dalla versione 2.7 di WordPress è stata introdotta la paginazione dei commenti: quando un articolo ha più di un certo numero di commenti, questi verranno suddivisi su più pagine. Se avete attivato questa funzionalità sul vostro blog, si crea però un buon numero di contenuti duplicati, perchè avremo sia la pagina principale con l'articolo ...

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 😀

      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