Chi siamo ha già scritto di un codice che visualizza il numero di follower di Twitter, fornito da Rarst. In questo articolo condivideremo un codice più avanzato ed elegante che consente di visualizzare il conteggio dei follower di Twitter in WordPress. Anche questo script è stato fornito da Rarst.
Caratteristiche
Questa funzione non è limitata al conteggio dei follower. Può recuperare qualsiasi valore non annidato restituito dal metodo API Twitter users/show.
Ha due livelli di cache:
- i valori interrogati sono memorizzati come array nel database, utilizzando le opzioni di WP, per $intervalli di secondi;
- Le risposte API sono memorizzate, in modo da poter effettuare una query su qualsiasi numero di campi, senza generare richieste API multiple.
Questo dovrebbe essere sicuro da usare per moltiplicare i valori e moltiplicare gli utenti allo stesso tempo, senza preoccuparsi di esaurire il limite delle API.
Tutorial
Aprite il file functions.php del tema e aggiungete il seguente codice:
function rarst_twitter_user( $username, $field, $display = false ) { $interval = 3600; $cache = get_option('rarst_twitter_user'); $url = 'http://api.twitter.com/1/users/show.json?screen_name='.urlencode($username); if ( false == $cache ) $cache = array(); // if first time request add placeholder and force update if ( !isset( $cache[$username][$field] ) ) { $cache[$username][$field] = NULL; $cache[$username]['lastcheck'] = 0; } // if outdated if( $cache[$username]['lastcheck'] < (time()-$interval) ) { // holds decoded JSON data in memory static $memorycache; if ( isset($memorycache[$username]) ) { $data = $memorycache[$username]; } else { $result = wp_remote_retrieve_body(wp_remote_request($url)); $data = json_decode( $result ); if ( is_object($data) ) $memorycache[$username] = $data; } if ( is_object($data) ) { // update all fields, known to be requested foreach ($cache[$username] as $key => $value) if( isset($data->$key) ) $cache[$username][$key] = $data->$key; $cache[$username]['lastcheck'] = time(); } else { $cache[$username]['lastcheck'] = time()+60; } update_option( 'rarst_twitter_user', $cache ); } if ( false != $display ) echo $cache[$username][$field]; return $cache[$username][$field]; }
Uso
Una volta incollata la funzione, è possibile utilizzare il codice in qualsiasi template di WordPress. Basta incollare il seguente codice:
echo rarst_twitter_user('wpbeginner', 'name').' has '. rarst_twitter_user('wpbeginner', 'followers_count').' followers after '. rarst_twitter_user('wpbeginner', 'statuses_count').' updates.';
Il codice sopra riportato visualizza qualcosa di simile:
WPBeginner ha 5846 follower dopo 1300 aggiornamenti.
Fonte: Rarst
Aleks
Someone explain where I put in my own twitter username please? Cause I really cant see where… And I cant get it to work either… No matter what.. This just wont give me username, not even leaving it completly basic as it stands right now, I get no response on username what so ever… it just displays: “has followers after updates”…
That’s it.. nothing else…
wpbeginner
In the usage section, replace “wpbeginner” with your twitter name.
Downhill_MC
this is a great code. i wonder if there is a possibility to create a function for embedding in text (something like ). downhill_mc
Sandeep
will you please tell me how should i add these codes in my custom twitter image as you shows us in your example.
Editorial Staff
You would have to use CSS.. unfortunately we are not writing tutorials for those on this site.
Admin
Ozh
(You should display syntax hilited and cleanly formatted code, really)
Rarst
Just noticed you lost + between time() and 60
Editorial Staff
Thanks for the correction. We really appreciate you providing the awesome snippets for everyone to use. Your hard work is really appreciated.
Admin
Angelo Beltran
Nice! I like its flexibility. Cheers.
Rarst
Glad you found it useful. Old snippet still works but it got kinda outdated and spread around a lot – it was getting hard to answer questions and correct outdated parts all the time.
This one is slightly more bulky, but it has much extended functionality for showing more data and for different usernames at the same time.
I also intend to maintain it more properly so feedback and suggestions are welcome on its page at my blog.