Visita <a href="http://www.liquida.it/" title="Notizie e opinioni dai blog italiani su Liquida">Liquida</a> e <a href="I widget di Liquida per il tuo blog">Widget</a>

set16
Categoria: Personalizzare WordPress | Autore: Camu

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:

18 Commenti

  1. =) Interessante rubrica, la seguirò con interesse

  2. Non posso che ringraziare BigThink per l’ospitalità ;)

    • E io ringrazio te per l’ottimo articolo e quelli futuri :)

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

  4. @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…

  5. Meraviglioso :) thx!

  6. Mi interessa molto. Vi seguirò anche se sono un po’ duro di comprendonio.

    • Proprio per questo ho cercato di usare un approccio semplice e discorsivo :) Accessibile anche ai meno smaliziati…

  7. Sicuramente saranno ottimi interventi ;) Complimenti Camu.

  8. Veramente interessante. E speriamo lo siano anche i prossimi :)

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

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

    • Non ho mai usato wordpress.com, però non mi pare sia possibile inserire plugin personalizzati…

  10. ma questa miniserie ha avuto un seguito?!

    • 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

      • ah quindi ci sono! questo è l’importante! :)
        ora cerco, grazie!

        • Caspita, avete ragione!
          Ho provveduto ad inserire alla fine di ogni articolo i dovuti rimandi a quelli successivi.

          Grazie e scusate la svista ;)

          • emiliano

            ok ma qualcuno mi risponde?

            grazie

Lascia un commento

Inserisci le tue informazioni personali, o loggati con il tuo account Facebook.