AJAX in WordPress: Best Practice

Chi, come me, utilizza WordPress da molto tempo potrebbe pensare di sapere già tutto sull’argomento, probabilmente per la semplicità di utilizzo e funzionamento di questa piattaforma.

Ciò che però potrebbe sfuggire anche ai più esperti è il fatto che WordPress mette a disposizione degli utenti molti strumenti che semplificano l’utilizzo di determinate tecnologie del web, facendo già un buon 60-70% del lavoro per noi.

Nell’articolo di oggi vedremo come implementare richieste asincrone all’interno di un sito sviluppato con WordPress. Può sembrare complicato, in realtà è molto semplice se si sfruttano gli strumenti messi a disposizione dalla piattaforma.

In giro ci sono molti plugin che gestiscono le richieste AJAX in modo del tutto personalizzato, senza utilizzare questi utili strumenti messi a disposizione da WordPress per gestire le richieste asincrone in tutta sicurezza, pulizia e semplicità. Con questo articolo vorrei mostrarvi qual è la best practice da seguire per implementare le funzionalità di AJAX su WordPress.

PREMESSA

La lettura di questo articolo necessita di conoscenze riguardo l’implementazione di funzionalità AJAX e una minima conoscenza sull’utilizzo di ganci e filtri all’interno di WordPress, tra le operazioni più comuni durante lo sviluppo di un plugin.

Qualora non abbiate ancora una conoscenza, anche minima, di questi due argomenti, consiglio la lettura di due articoli di Maurizio:

ALL’OPERA

Prima di iniziare, ripassiamo come funziona il sistema di integrazione di una funzionalità in AJAX:

– Il client effettua una chiamata asincrona al server che la riceve ed elabora una risposta da inviare nuovamente al client. Il client quindi aggiorna il frontend senza bisogno di ricaricare la pagina.

Dobbiamo quindi, in qualità di sviluppatori, elaborare una richiesta lato server, in modo che quest’ultimo fornisca una risposta da inviare al client.

Ciò significa che la richiesta AJAX (come spiegato nell’articolo di Maurizio) deve essere inviata a uno script php che elabora la richiesta per poi fornire il risultato.

Se questo ragionamento viene effettuato su WordPress, avremo la necessità di utilizzare gli strumenti e le funzioni messe a disposizione dalla piattaforma.

I dubbi che potrebbero a questo punto sorgere sono i seguenti:

Come faccio ad eseguire una richiesta a uno script php, se l’unico punto di accesso a WordPress è la index.php nella root della mia installazione? 
Se faccio la richiesta ad uno script php che creo io all’interno del mio plugin, come faccio a caricare tutte le funzionalità di WordPress?
Posso mica portarmele dietro durante la richiesta asincrona?

Partendo dall’ultima domanda, la risposta chiaramente è “NO”: WordPress ha già fatto il suo lavoro nel caricare tutte le sue funzionalità nella pagina in cui ti trovi. Tuttavia, per effettuare questa nuova richiesta, ci sarà bisogno di ricaricare WordPress.

Come risposta alle altre due domande, gli utenti  più avanzati potrebbero pensare a una soluzione del genere: