SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
Ajaxare WordPress



   WordCamp Milano - 5 Maggio 2012 - Salvatore Laisa
About me (Interactive designer?)




 2006           2007   2008        2010                   2011




  WordCamp                                      Salvatore Laisa
  Milano 2012                             www.salvatorelaisa.net
Di cosa parleremo

1. Le basi e bla bla bla


2. Mettiamoci un po’ di Ajax in questo tema


3. Case histories


4. Risorse e altra “robbba giusta”


5. Domande




   WordCamp                                         Salvatore Laisa
   Milano 2012                                www.salvatorelaisa.net
Parte 1:
Le basi e bla bla bla
Quelle cose da sapere prima di
iniziare a fare sul serio...




   WordCamp                                Foto:
   Milano 2012   “A spot of magic” - JD Hancock
Rapidamente: cos’è AJAX

 E’ quella tecnologia che permette di avere pagine web “multitasking”, ovvero in
 grado di effettuare più caricamenti contemporaneamente e quindi più simili ad
 applicazioni che a pagine nel senso stretto.


 AJAX esiste da sempre, è in voga dal 2005 quindi ampliamente supportato dai
 browser principali (sì, anche Internet Explorer <9) e non è assolutamento legato
 alla specifica HTML5.




  WordCamp                                                           Salvatore Laisa
  Milano 2012                                                  www.salvatorelaisa.net
Come inserire Javascript in un tema

 “Non ci vuole mica tanto, basta fare così:”




 Di funzionare funziona, ma così WordPress non è in grado di “monitorare” la
 presenza di altri script simili.


 Nel caso di librerie come jQuery ci si può ritrovare con più versioni incluse nella
 pagina, spesso anche di versioni diverse!



  WordCamp                                                              Salvatore Laisa
  Milano 2012                                                     www.salvatorelaisa.net
Il metodo giusto: register/enqueue script

  All’interno di functions.php




  Accetta 5 argomenti che sono

• handler: (stringa) nome che si assegna allo script
• src: (stringa) posizione fisica del file
• dependencies: (array) altri script da cui dipende
• version: (stringa) versione dello script
• in footer: (booleano) se deve essere inserito nel footer

   WordCamp                                                        Salvatore Laisa
   Milano 2012                                               www.salvatorelaisa.net
Qual’è l’azione giusta?

 Fino a qualche mese fa si usava l’azione “init” per far scaturire il tutto, il problema
 è che functions.php viene letto sia da backend e frontend e questa mossa può
 generare pasticci.


 Un recente aggiornamento del Codex suggerisce di usare un’altra azione per
 caricare gli scripts:




  WordCamp                                                                Salvatore Laisa
  Milano 2012                                                       www.salvatorelaisa.net
WordPress è una web-application!

 La backend di WordPress è costruita con i tradizionali linguaggi web Html, Css,
 PHP e anche Javascript, e già di suo include diverse librerie tra cui jQuery (e
 tutto lo stack jQuery UI), Prototype, SWF Object e altre ancora.


 Quindi se vogliamo usare una di queste ci basta semplicemente richiamarla




 PS: da diverso tempo il team di WordPress sta lavorando per Ajaxare maggiormente la backend!




  WordCamp                                                                          Salvatore Laisa
  Milano 2012                                                                 www.salvatorelaisa.net
Occhio a jQuery!

  All’interno di WordPress è presente una copia di jQuery abbastanza recente ma
  in modalità no-conflict ovvero dove il $ non viene riconosciuto come alias della
  libreria, perché già usato da Prototype!


  Le alternative possono essere:


• ri-registrare la copia interna di jQuery sostituendola con una “nostra” o presa
  magari da un CDN (in genere quello di Google)
• ri-definire l’alias all’interno del file di Javascript in cui ci serve

  Entrambi i metodi sono descritti nella pagina del Codex di wp_enqueue_script().



   WordCamp                                                                    Salvatore Laisa
   Milano 2012                                                           www.salvatorelaisa.net
Parte 2:
Mettiamoci un pò di
Ajax in questo tema!
E la cosa non dispiacerà neanche
ai plugin




   WordCamp                              Foto:
   Milano 2012   “Ajax for dummies” - Daveynin
Perché WordPress e Ajax sono una grande coppia

 Tutti i caricamenti compiuti tramite Ajax avvengono lato client quindi un ipotetico
 CMS basato completamente su questo sarebbe quasi invisibile per i motori di
 ricerca.


 WordPress al momento di pubblicazione di un articolo o pagina “crea” sempre
 una definizione di essa lato server (e quindi indicizzabile). Possiamo sfruttare il
 fatto che le pagine già esistono per caricarle con Ajax a rendere l’esperienza
 utente più snella e reattiva!




  WordCamp                                                              Salvatore Laisa
  Milano 2012                                                     www.salvatorelaisa.net
Cosa possiamo Ajaxare?

 Volendo anche tutto! Ma come tutte le tecniche è importante applicare AJAX
 solo quando lo riteniamo opportunamente efficace e non a sproposito!


 I casi più diffusi in genere sono:


• caricamento pagine/articoli

• submit di informazioni in una form (anche i commenti!)

• importazione feed esterni (Rss, Flickr, Twitter, ecc.)

 (PS: userò jQuery per i prossimi esempi!)


   WordCamp                                                        Salvatore Laisa
   Milano 2012                                               www.salvatorelaisa.net
Post casuali 1/2

 Possiamo fare in modo che un template carichi in modo casuale dei post, a
 livello di PHP il codice può essere:




 Ora possiamo fare in modo che un pulsante “refreshi” in modo asincrono questa porzione di
 pagina così da ottenere un nuovo post casuale.


  WordCamp                                                                    Salvatore Laisa
  Milano 2012                                                           www.salvatorelaisa.net
Post casuali 2/2

 Da qualche parte nel HTML devo memorizzare l’url della pagina, poi con
 Javascript e jQuery...




 Ora possiamo fare in modo che un pulsante “refreshi” in modo asincrono questa porzione di
 pagina così da ottenere un nuovo post casuale.


  WordCamp                                                                    Salvatore Laisa
  Milano 2012                                                           www.salvatorelaisa.net
Back to the future

 Quando carichiamo pagine con Ajax entra in gioco il discorso di eventi su
 elementi “futuri”, ovvero che non sono presenti dall’inizio nella pagina ma
 arriveranno (forse più avanti) con una chiamata asincrona.


 I normali gestori di eventi non funzionano, ma jQuery ha la funzione “on” per
 agganciare eventi a questi elementi:




  WordCamp                                                            Salvatore Laisa
  Milano 2012                                                   www.salvatorelaisa.net
Ajaxare una form 1/2

 WordPress elimina gran parte del dolore nella creazione di form per commenti e
 grazie ad alcuni plugin anche per form di contatti!

 Validarle lato client ed evitare passaggi di pagine per invio dati rende l’esperienza
 di compilazione delle form molto più piacevole e fluida.

 Prima di tutto... andiamo a prendere il nome della form generata!




  WordCamp                                                              Salvatore Laisa
  Milano 2012                                                     www.salvatorelaisa.net
Ajaxare una form 2/2 (il più è Javascript)




 Possiamo usare la funzione wp_mail() per gestire manualmente gli invii!

  WordCamp                                                          Salvatore Laisa
  Milano 2012                                                 www.salvatorelaisa.net
Parte 3:
Case histories
AKA - se gli altri si buttano da un
ponte lo fai anche tu?




                                          Foto:
   WordCamp       “Ocean view branch” - Orange
   Milano 2012                 County Archives
Minimalista (tema)

 Portofolio fotografico + pagine caricate in Ajax + Lightbox =

 cari vecchi siti in Flash :-)




  WordCamp                                                            Salvatore Laisa
  Milano 2012                                                   www.salvatorelaisa.net
AGT Noname (tema)

I caricamenti dei contenuti avvengono tramite Ajax (con icona animata di
caricamento).




 WordCamp                                                          Salvatore Laisa
 Milano 2012                                                 www.salvatorelaisa.net
Jetpack - Statistiche sito (plugin)

 Il caricamento dei dati di analitiche vengono importati e manipolati tramite Ajax
 permettendo così di rimanere sempre nella stessa pagina della bacheca.




  WordCamp                                                             Salvatore Laisa
  Milano 2012                                                    www.salvatorelaisa.net
Parte 4:
Risorse e altra
“robbba giusta”
Plugin, guide e tutorial utili e non!




   WordCamp                               Foto:
   Milano 2012       “Presents” - Msmorningtom
Plugin Ajaxosi di WordPress

• Post Ratings - Aggiunge un sistema di punteggio per post/pagine che si
  aggiorna in tempo reale.


• Jetpack - Set di plugin by Automattic, tra cui: creazione form di contatto e
  widget per Twitter.


• Contact Form 7 - Plugin per generare form direttamente da backend (e
  risparmiare qualche mezzoretta!)




   WordCamp                                                            Salvatore Laisa
   Milano 2012                                                   www.salvatorelaisa.net
Librerie Javascript da considerare con WP

• MicroAjax - se volete un comodo wrapper per Ajax (0.4 kb!) senza dover
  includere librerie intere come jQuery o Prototype


• Fancybox - è un plugin di jQuery per creare gallerie, ma supporta anche il
  caricamento di contenuti Html


• Mini JS | Notification - Utile per mostrare avvisi di operazioni eseguite


• jQuery UI Tabs - (ricordatevi è gia incluso in WP!) hanno una comoda modalità
  Ajax facile da utilizzare!




   WordCamp                                                             Salvatore Laisa
   Milano 2012                                                    www.salvatorelaisa.net
Tutorial, guide, libri

• WP Tuts+ - Abbastanza recente, ma si è già guadagnato una buona reputazione
  ed è abbastanza tecnico! (mitici Envato)


• WPLift - spazia molto tra gli argomenti ma molto valido.


• WPMania & WordPress Italy - siti italiani di tutorial e reviews plugin/temi.


• jQuery Novice to Ninja 2nd Edition - Libro edito da Sitepoint.com, ha una
  buona parte su Ajax!


• WordPress & Ajax - eBook sulla coppia che scoppia wpajax.com



   WordCamp                                                              Salvatore Laisa
   Milano 2012                                                     www.salvatorelaisa.net
Ultima nota

 Queste slide e un tema Ajaxoso con le tecniche affrontate in questo talk sono
 disponibili da scaricare dal mio sito personale

 www.salvatorelaisa.net

 aggratis! e mi raccomando condividete!




  WordCamp                                                           Salvatore Laisa
  Milano 2012                                                  www.salvatorelaisa.net
e a questo punto....




              GRAZIE!
               (e dateci dentro di domande!)




WordCamp                                         Salvatore Laisa
Milano 2012                                    salvatorelaisa.net

Contenu connexe

Tendances

MEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webMEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webEugenio Minardi
 
Generazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETGenerazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETStefano Ottaviani
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaMarco Breveglieri
 
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Corso WebApp iOS - Lezione 06:   Web Development for iOS DevicesCorso WebApp iOS - Lezione 06:   Web Development for iOS Devices
Corso WebApp iOS - Lezione 06: Web Development for iOS DevicesAndrea Picchi
 
WordPress, un CMS per la scuola: novità e sviluppi - Porte Aperte sul Web a S...
WordPress, un CMS per la scuola: novità e sviluppi - Porte Aperte sul Web a S...WordPress, un CMS per la scuola: novità e sviluppi - Porte Aperte sul Web a S...
WordPress, un CMS per la scuola: novità e sviluppi - Porte Aperte sul Web a S...Marco Milesi
 
I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)Diego La Monica
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webLuca Milan
 
WordPress per siti scolastici a norma: motori di ricerca, utenti e gestione g...
WordPress per siti scolastici a norma: motori di ricerca, utenti e gestione g...WordPress per siti scolastici a norma: motori di ricerca, utenti e gestione g...
WordPress per siti scolastici a norma: motori di ricerca, utenti e gestione g...Marco Milesi
 

Tendances (9)

MEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webMEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del web
 
Generazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETGenerazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NET
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
 
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Corso WebApp iOS - Lezione 06:   Web Development for iOS DevicesCorso WebApp iOS - Lezione 06:   Web Development for iOS Devices
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
 
WordPress, un CMS per la scuola: novità e sviluppi - Porte Aperte sul Web a S...
WordPress, un CMS per la scuola: novità e sviluppi - Porte Aperte sul Web a S...WordPress, un CMS per la scuola: novità e sviluppi - Porte Aperte sul Web a S...
WordPress, un CMS per la scuola: novità e sviluppi - Porte Aperte sul Web a S...
 
Rich Internet Application
Rich Internet ApplicationRich Internet Application
Rich Internet Application
 
I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni web
 
WordPress per siti scolastici a norma: motori di ricerca, utenti e gestione g...
WordPress per siti scolastici a norma: motori di ricerca, utenti e gestione g...WordPress per siti scolastici a norma: motori di ricerca, utenti e gestione g...
WordPress per siti scolastici a norma: motori di ricerca, utenti e gestione g...
 

En vedette

Il Bottone all'attacco! Una buona prassi nella gestione di un Piccolo Museo
Il Bottone all'attacco! Una buona prassi nella gestione di un Piccolo MuseoIl Bottone all'attacco! Una buona prassi nella gestione di un Piccolo Museo
Il Bottone all'attacco! Una buona prassi nella gestione di un Piccolo MuseoIlaria Pic
 
Apresentação j query7
Apresentação j query7Apresentação j query7
Apresentação j query7douglasgrava
 
Animação com jQuery
Animação com jQueryAnimação com jQuery
Animação com jQuerydouglasgrava
 

En vedette (7)

Capitulo 1
Capitulo 1Capitulo 1
Capitulo 1
 
Introducc..
Introducc..Introducc..
Introducc..
 
Il Bottone all'attacco! Una buona prassi nella gestione di un Piccolo Museo
Il Bottone all'attacco! Una buona prassi nella gestione di un Piccolo MuseoIl Bottone all'attacco! Una buona prassi nella gestione di un Piccolo Museo
Il Bottone all'attacco! Una buona prassi nella gestione di un Piccolo Museo
 
Doc1 monica
Doc1 monicaDoc1 monica
Doc1 monica
 
Apresentação j query7
Apresentação j query7Apresentação j query7
Apresentação j query7
 
Animação com jQuery
Animação com jQueryAnimação com jQuery
Animação com jQuery
 
PUJA GUPTA
PUJA GUPTAPUJA GUPTA
PUJA GUPTA
 

Similaire à Ajaxare WordPress

Salvatore Laisa, WordPress + JQuery
Salvatore Laisa, WordPress + JQuerySalvatore Laisa, WordPress + JQuery
Salvatore Laisa, WordPress + JQueryKnowCamp
 
Data binding libera tutti!
Data binding libera tutti!Data binding libera tutti!
Data binding libera tutti!Appsterdam Milan
 
Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Giorgio Carpoca
 
Introduzione a Ruby On Rails
Introduzione a Ruby On RailsIntroduzione a Ruby On Rails
Introduzione a Ruby On RailsLuca Mearelli
 
SmartClient by Isomorphic - Rich internet applications
SmartClient by Isomorphic - Rich internet applicationsSmartClient by Isomorphic - Rich internet applications
SmartClient by Isomorphic - Rich internet applicationsClaudio Bosticco
 
Corso WebApp iOS - Lezione 08: Optimize iOS WebApp
Corso WebApp iOS - Lezione 08: Optimize iOS WebAppCorso WebApp iOS - Lezione 08: Optimize iOS WebApp
Corso WebApp iOS - Lezione 08: Optimize iOS WebAppAndrea Picchi
 
7. Applicazioni Web e CMS
7. Applicazioni Web e CMS7. Applicazioni Web e CMS
7. Applicazioni Web e CMSRoberto Polillo
 
Working between the clouds
Working between the cloudsWorking between the clouds
Working between the cloudsDavide Cerbo
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione webQabiria
 
Creare siti web con Orchard
Creare siti web con OrchardCreare siti web con Orchard
Creare siti web con OrchardMichele Aponte
 
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...DrupalDay
 
Le novita di visual studio 2012
Le novita di visual studio 2012Le novita di visual studio 2012
Le novita di visual studio 2012Crismer La Pignola
 
Responsive Web Design & Single Page Application
Responsive Web Design & Single Page ApplicationResponsive Web Design & Single Page Application
Responsive Web Design & Single Page ApplicationAlessandro Colla
 
Esposizione RIA
Esposizione RIAEsposizione RIA
Esposizione RIAdiodorato
 
Hands on MVC - Mastering the Web
Hands on MVC - Mastering the WebHands on MVC - Mastering the Web
Hands on MVC - Mastering the WebClaudio Gandelli
 

Similaire à Ajaxare WordPress (20)

Salvatore Laisa, WordPress + JQuery
Salvatore Laisa, WordPress + JQuerySalvatore Laisa, WordPress + JQuery
Salvatore Laisa, WordPress + JQuery
 
Data binding libera tutti!
Data binding libera tutti!Data binding libera tutti!
Data binding libera tutti!
 
Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Presentazione Corso - Parte 3
Presentazione Corso - Parte 3
 
Introduzione a Ruby On Rails
Introduzione a Ruby On RailsIntroduzione a Ruby On Rails
Introduzione a Ruby On Rails
 
SmartClient by Isomorphic - Rich internet applications
SmartClient by Isomorphic - Rich internet applicationsSmartClient by Isomorphic - Rich internet applications
SmartClient by Isomorphic - Rich internet applications
 
07 - Web apps e CMS
07 - Web apps e CMS07 - Web apps e CMS
07 - Web apps e CMS
 
Corso WebApp iOS - Lezione 08: Optimize iOS WebApp
Corso WebApp iOS - Lezione 08: Optimize iOS WebAppCorso WebApp iOS - Lezione 08: Optimize iOS WebApp
Corso WebApp iOS - Lezione 08: Optimize iOS WebApp
 
7. Applicazioni Web e CMS
7. Applicazioni Web e CMS7. Applicazioni Web e CMS
7. Applicazioni Web e CMS
 
8 - Web App e CMS - 16/17
8 - Web App e CMS - 16/178 - Web App e CMS - 16/17
8 - Web App e CMS - 16/17
 
Working between the clouds
Working between the cloudsWorking between the clouds
Working between the clouds
 
Silex, iniziamo
Silex, iniziamoSilex, iniziamo
Silex, iniziamo
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione web
 
Creare siti web con Orchard
Creare siti web con OrchardCreare siti web con Orchard
Creare siti web con Orchard
 
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
 
Le novita di visual studio 2012
Le novita di visual studio 2012Le novita di visual studio 2012
Le novita di visual studio 2012
 
Responsive Web Design & Single Page Application
Responsive Web Design & Single Page ApplicationResponsive Web Design & Single Page Application
Responsive Web Design & Single Page Application
 
Lamp Ld2008
Lamp Ld2008Lamp Ld2008
Lamp Ld2008
 
Esposizione RIA
Esposizione RIAEsposizione RIA
Esposizione RIA
 
Web frameworks
Web frameworksWeb frameworks
Web frameworks
 
Hands on MVC - Mastering the Web
Hands on MVC - Mastering the WebHands on MVC - Mastering the Web
Hands on MVC - Mastering the Web
 

Ajaxare WordPress

  • 1. Ajaxare WordPress WordCamp Milano - 5 Maggio 2012 - Salvatore Laisa
  • 2. About me (Interactive designer?) 2006 2007 2008 2010 2011 WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 3. Di cosa parleremo 1. Le basi e bla bla bla 2. Mettiamoci un po’ di Ajax in questo tema 3. Case histories 4. Risorse e altra “robbba giusta” 5. Domande WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 4. Parte 1: Le basi e bla bla bla Quelle cose da sapere prima di iniziare a fare sul serio... WordCamp Foto: Milano 2012 “A spot of magic” - JD Hancock
  • 5. Rapidamente: cos’è AJAX E’ quella tecnologia che permette di avere pagine web “multitasking”, ovvero in grado di effettuare più caricamenti contemporaneamente e quindi più simili ad applicazioni che a pagine nel senso stretto. AJAX esiste da sempre, è in voga dal 2005 quindi ampliamente supportato dai browser principali (sì, anche Internet Explorer <9) e non è assolutamento legato alla specifica HTML5. WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 6. Come inserire Javascript in un tema “Non ci vuole mica tanto, basta fare così:” Di funzionare funziona, ma così WordPress non è in grado di “monitorare” la presenza di altri script simili. Nel caso di librerie come jQuery ci si può ritrovare con più versioni incluse nella pagina, spesso anche di versioni diverse! WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 7. Il metodo giusto: register/enqueue script All’interno di functions.php Accetta 5 argomenti che sono • handler: (stringa) nome che si assegna allo script • src: (stringa) posizione fisica del file • dependencies: (array) altri script da cui dipende • version: (stringa) versione dello script • in footer: (booleano) se deve essere inserito nel footer WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 8. Qual’è l’azione giusta? Fino a qualche mese fa si usava l’azione “init” per far scaturire il tutto, il problema è che functions.php viene letto sia da backend e frontend e questa mossa può generare pasticci. Un recente aggiornamento del Codex suggerisce di usare un’altra azione per caricare gli scripts: WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 9. WordPress è una web-application! La backend di WordPress è costruita con i tradizionali linguaggi web Html, Css, PHP e anche Javascript, e già di suo include diverse librerie tra cui jQuery (e tutto lo stack jQuery UI), Prototype, SWF Object e altre ancora. Quindi se vogliamo usare una di queste ci basta semplicemente richiamarla PS: da diverso tempo il team di WordPress sta lavorando per Ajaxare maggiormente la backend! WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 10. Occhio a jQuery! All’interno di WordPress è presente una copia di jQuery abbastanza recente ma in modalità no-conflict ovvero dove il $ non viene riconosciuto come alias della libreria, perché già usato da Prototype! Le alternative possono essere: • ri-registrare la copia interna di jQuery sostituendola con una “nostra” o presa magari da un CDN (in genere quello di Google) • ri-definire l’alias all’interno del file di Javascript in cui ci serve Entrambi i metodi sono descritti nella pagina del Codex di wp_enqueue_script(). WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 11. Parte 2: Mettiamoci un pò di Ajax in questo tema! E la cosa non dispiacerà neanche ai plugin WordCamp Foto: Milano 2012 “Ajax for dummies” - Daveynin
  • 12. Perché WordPress e Ajax sono una grande coppia Tutti i caricamenti compiuti tramite Ajax avvengono lato client quindi un ipotetico CMS basato completamente su questo sarebbe quasi invisibile per i motori di ricerca. WordPress al momento di pubblicazione di un articolo o pagina “crea” sempre una definizione di essa lato server (e quindi indicizzabile). Possiamo sfruttare il fatto che le pagine già esistono per caricarle con Ajax a rendere l’esperienza utente più snella e reattiva! WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 13. Cosa possiamo Ajaxare? Volendo anche tutto! Ma come tutte le tecniche è importante applicare AJAX solo quando lo riteniamo opportunamente efficace e non a sproposito! I casi più diffusi in genere sono: • caricamento pagine/articoli • submit di informazioni in una form (anche i commenti!) • importazione feed esterni (Rss, Flickr, Twitter, ecc.) (PS: userò jQuery per i prossimi esempi!) WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 14. Post casuali 1/2 Possiamo fare in modo che un template carichi in modo casuale dei post, a livello di PHP il codice può essere: Ora possiamo fare in modo che un pulsante “refreshi” in modo asincrono questa porzione di pagina così da ottenere un nuovo post casuale. WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 15. Post casuali 2/2 Da qualche parte nel HTML devo memorizzare l’url della pagina, poi con Javascript e jQuery... Ora possiamo fare in modo che un pulsante “refreshi” in modo asincrono questa porzione di pagina così da ottenere un nuovo post casuale. WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 16. Back to the future Quando carichiamo pagine con Ajax entra in gioco il discorso di eventi su elementi “futuri”, ovvero che non sono presenti dall’inizio nella pagina ma arriveranno (forse più avanti) con una chiamata asincrona. I normali gestori di eventi non funzionano, ma jQuery ha la funzione “on” per agganciare eventi a questi elementi: WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 17. Ajaxare una form 1/2 WordPress elimina gran parte del dolore nella creazione di form per commenti e grazie ad alcuni plugin anche per form di contatti! Validarle lato client ed evitare passaggi di pagine per invio dati rende l’esperienza di compilazione delle form molto più piacevole e fluida. Prima di tutto... andiamo a prendere il nome della form generata! WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 18. Ajaxare una form 2/2 (il più è Javascript) Possiamo usare la funzione wp_mail() per gestire manualmente gli invii! WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 19. Parte 3: Case histories AKA - se gli altri si buttano da un ponte lo fai anche tu? Foto: WordCamp “Ocean view branch” - Orange Milano 2012 County Archives
  • 20. Minimalista (tema) Portofolio fotografico + pagine caricate in Ajax + Lightbox = cari vecchi siti in Flash :-) WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 21. AGT Noname (tema) I caricamenti dei contenuti avvengono tramite Ajax (con icona animata di caricamento). WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 22. Jetpack - Statistiche sito (plugin) Il caricamento dei dati di analitiche vengono importati e manipolati tramite Ajax permettendo così di rimanere sempre nella stessa pagina della bacheca. WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 23. Parte 4: Risorse e altra “robbba giusta” Plugin, guide e tutorial utili e non! WordCamp Foto: Milano 2012 “Presents” - Msmorningtom
  • 24. Plugin Ajaxosi di WordPress • Post Ratings - Aggiunge un sistema di punteggio per post/pagine che si aggiorna in tempo reale. • Jetpack - Set di plugin by Automattic, tra cui: creazione form di contatto e widget per Twitter. • Contact Form 7 - Plugin per generare form direttamente da backend (e risparmiare qualche mezzoretta!) WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 25. Librerie Javascript da considerare con WP • MicroAjax - se volete un comodo wrapper per Ajax (0.4 kb!) senza dover includere librerie intere come jQuery o Prototype • Fancybox - è un plugin di jQuery per creare gallerie, ma supporta anche il caricamento di contenuti Html • Mini JS | Notification - Utile per mostrare avvisi di operazioni eseguite • jQuery UI Tabs - (ricordatevi è gia incluso in WP!) hanno una comoda modalità Ajax facile da utilizzare! WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 26. Tutorial, guide, libri • WP Tuts+ - Abbastanza recente, ma si è già guadagnato una buona reputazione ed è abbastanza tecnico! (mitici Envato) • WPLift - spazia molto tra gli argomenti ma molto valido. • WPMania & WordPress Italy - siti italiani di tutorial e reviews plugin/temi. • jQuery Novice to Ninja 2nd Edition - Libro edito da Sitepoint.com, ha una buona parte su Ajax! • WordPress & Ajax - eBook sulla coppia che scoppia wpajax.com WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 27. Ultima nota Queste slide e un tema Ajaxoso con le tecniche affrontate in questo talk sono disponibili da scaricare dal mio sito personale www.salvatorelaisa.net aggratis! e mi raccomando condividete! WordCamp Salvatore Laisa Milano 2012 www.salvatorelaisa.net
  • 28. e a questo punto.... GRAZIE! (e dateci dentro di domande!) WordCamp Salvatore Laisa Milano 2012 salvatorelaisa.net