Funzionando con il cambiamento, i dati memorizzabili nella cache? WP-Transients ti ha tolto la schiena!

La modifica dei dati è sempre presente in un sito basato su WordPress. Sia che si tratti di un nuovo post, di un commento aggiunto o di un tweet aggiornato per la prima pagina, lo stato di un blog viene costantemente modificato. Poiché tali dati sono spesso utili per un visitatore, è necessario visualizzarli. Questo, tuttavia, è tormentato dal fatto che le informazioni dinamiche, specialmente da fonti esterne, si traducono in siti più lenti e oppressi. Quando si tratta di questi problemi, l'API di WordPress Transient ti copre con il suo robusto caching. Il seguente screencast dimostrerà esattamente come sfruttare le sue funzionalità.


screencast


Passaggio 1 Ottieni il transitorio per nome

Accedere a un transitorio passando un nome al get_transient () funzione. Non preoccuparti; anche se non ne hai ancora creato uno, questo è ancora il primo passo! Per il nostro esempio, riceveremo un conteggio follower di Twitter.

 $ transient = 'wptuts_twitter_follower_count'; $ count = get_transient ($ transient);

Passaggio 2 Controllare se il transitorio è scaduto

Se il valore di ritorno di get_transient () è falso, il transitorio è scaduto (in base al parametro temporale spiegato nel passaggio 3) o non è mai stato impostato in primo luogo:

 if (false === $ count) // transient è scaduto; vai al passaggio 3

Passaggio 3 Se scaduto, impostare il transitorio

Quando un transitorio scade, deve essere resettato; in altre parole, i dati devono essere aggiornati. Per fare ciò, prima recupera i nuovi dati. In questo caso, ottenere il conteggio follower tramite l'API di Twitter come da video:

 $ data = @file_get_contents ('http://api.twitter.com/1/users/lookup.json?screen_name=envatowp'); $ json = json_decode ($ data); se ($ json && isset ($ json [0]) && isset ($ json [0] -> followers_adeguati)) $ count = (int) $ json [0] -> followers_count;

Ora memorizzarlo usando il set_transient () funzione. Si noti che questo richiede un nome, un valore e un tempo di scadenza in secondi come parametri. Dopo questo tempo è trascorso, get_transient () restituirà false e attiverà nuovamente questo passaggio:

 // scade tra 1 giorno (60 secondi / minuto * 60 minuti / ora * 24 ore / giorno = secondi / giorno) set_transient ($ transitorio, $ count, 24 * 60 * 60);

Passaggio 4 Metti tutto insieme

Combinando questo in una funzione si ottiene:

 function twitter_follower_count () $ transient = 'wptuts_twitter_follower_count'; $ count = get_transient ($ transient); if (false === $ count) $ data = @file_get_contents ('http://api.twitter.com/1/users/lookup.json?screen_name=envatowp'); $ json = json_decode ($ data); se ($ json && isset ($ json [0]) && isset ($ json [0] -> followers_addebito)) $ count = (int) $ json [0] -> followers_conti; set_transient ($ transient, $ count, 24 * 60 * 60);  return $ count; 

Il conteggio follower non solo è disponibile per l'uso in qualsiasi parte del tuo sito, ma viene anche memorizzato in modo efficiente ogni giorno per ridurre i tempi di caricamento.


Codice finale dal video

Il codice finale dello screencast, con alcune modifiche, è incluso di seguito:

 class WPTuts_Transients public function WPTuts_Transients ()  public function twitter_follower_count () return $ this-> process_transient ('wptuts_twitter_follower_count', array ($ this, 'refresh_twitter_follower_count'), 24 * 60 * 60);  public function refresh_twitter_follower_count () $ data = @file_get_contents ('http://api.twitter.com/1/users/lookup.json?screen_name=envatowp'); $ json = json_decode ($ data); $ count = false; se ($ json && isset ($ json [0]) && isset ($ json [0] -> followers_adeguati)) $ count = (int) $ json [0] -> followers_count; return $ count;  public function twitter_recent_tweets () return $ this-> process_transient ('wptuts_twitter_recent_tweets', array ($ this, 'refresh_twitter_recent_tweets'), 24 * 60 * 60);  public function refresh_twitter_recent_tweets () $ data = @file_get_contents ("http://api.twitter.com/1/statuses/user_timeline.json?screen_name=envatowp&count=5&trim_user=true&exclude_replies=true"); $ json = json_decode ($ data); $ tweets = false; se ($ json) $ tweets = $ json; restituire $ tweets;  public function feedburner_subscriber_count () return $ this-> process_transient ('wptuts_feedburner_subscriber_count', array ($ this, 'refresh_feedburner_subscriber_count'), 24 * 60 * 60);  public function refresh_feedburner_subscriber_count () $ data = @file_get_contents ('https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=wptuts'); $ count = false; if (preg_match ('~ circulation = "(\ d +)" ~', $ data, $ corrisponde) && isset ($ corrisponde a [1])) $ count = (int) $ corrisponde a [1]; return $ count;  funzione privata process_transient ($ transient, $ refresh, $ time) $ data = get_transient ($ transient); if (false === $ data) if (is_callable ($ refresh)) $ data = call_user_func ($ refresh); set_transient ($ transient, $ data, $ time);  restituisce $ dati; 

Grazie

Spero che questo sia stato utile tutorial sull'API Transient WordPress. Non esitate a lasciare i vostri commenti qui sotto.