Ogni sito WordPress esegue query sul database. Alcune sono veloci — recuperare un singolo post per ID. Altre sono lente — chiamate WP_Query complesse con più condizioni meta, oppure il recupero di dati da API esterne. La Transients API ti permette di memorizzare nella cache queste operazioni costose così che vengano eseguite solo occasionalmente, migliorando drasticamente i tempi di caricamento delle pagine.
Questa guida copre come usare la Transients API di WordPress per memorizzare nella cache le query del database, le risposte delle API e i calcoli costosi.
Cosa Sono i Transients?
I transients sono dati temporaneamente memorizzati nella cache, salvati nel database WordPress o nell'object cache con un tempo di scadenza. A differenza della Options API, che memorizza dati permanenti, i transients sono progettati per i dati che diventano obsoleti dopo un periodo specifico. Sono perfetti per memorizzare i risultati di operazioni costose che non devono essere freschi a ogni caricamento di pagina.
I transients scadono automaticamente dopo il periodo impostato e possono essere eliminati preventivamente quando aggiorni i dati sottostanti. Se il tuo sito usa un'object cache come Redis, i transients vengono salvati in memoria, rendendoli ancora più veloci.
Operazioni di Base sui Transients
Imposta un transient con set_transient(), passando una chiave univoca, i dati da salvare e il tempo di scadenza in secondi. Recuperalo con get_transient(), che restituisce false se il transient è scaduto o non esiste. Eliminalo con delete_transient() quando devi svuotare la cache.
Il pattern standard consiste nel verificare l'esistenza di un transient, usarlo se esiste e rigenerarlo se non esiste. Questo pattern mantiene il tuo codice efficiente senza una gestione manuale della cache.
Memorizzare nella Cache le Query Costose
Il caso d'uso più comune per i transients è la memorizzazione dei risultati di WP_Query complesse. Se il tuo plugin mostra un elenco di post correlati, commenti recenti o prodotti popolari, avvolgi la query in un transient. Imposta un tempo di scadenza ragionevole in base alla frequenza con cui i dati cambiano — ogni ora per i siti aggiornati di frequente, ogni giorno per i contenuti statici.
Elimina i transients rilevanti quando i dati sottostanti cambiano. Ad esempio, quando viene pubblicato un nuovo post, elimina il transient dei “post recenti” così che il prossimo caricamento della pagina mostri l'elenco aggiornato.
Memorizzare nella Cache le Risposte delle API Esterne
Le chiamate API esterne sono lente e inaffidabili. Se il tuo plugin recupera dati da un'API di terze parti — dati meteo, prezzi delle azioni, conteggi dei social media — memorizza la risposta nella cache con un transient. Questo protegge il tuo sito dal downtime delle API e migliora drasticamente i tempi di caricamento per gli utenti.
Imposta un tempo di scadenza più lungo per i dati che cambiano lentamente. Imposta un tempo più breve per i dati in tempo reale. Gestisci sempre il caso in cui l'API non sia disponibile e il transient sia scaduto — ripiega su dati cache obsoleti piuttosto che mostrare un errore.
Transients vs Altri Metodi di Cache
I transients sono uno dei diversi strumenti di cache in WordPress. La page caching serve intere pagine HTML ai visitatori anonimi. L'object caching memorizza i risultati delle query del database. I transients sono ideali per memorizzare l'output di specifiche operazioni PHP costose che non sono coperte dalla page o dall'object caching.
Usa i transients quando devi memorizzare il risultato di una funzione o query specifica che impiega più di 100ms per essere eseguita. Usa la Options API per i dati che dovrebbero persistere indefinitamente. Usa direttamente l'object cache solo quando ti serve più controllo di quanto offrano i transients.
Il punto fondamentale
La Transients API è uno degli strumenti di prestazioni più efficaci per gli sviluppatori WordPress. Ti permette di memorizzare le operazioni costose con un codice minimo, gestendo automaticamente scadenza e pulizia. Identifica le parti più lente del tuo plugin — query complesse, chiamate API, calcoli pesanti — e avvolgile in transients. Il miglioramento delle prestazioni è spesso drammatico.




