We have previously written about a code that lets you display twitter followers count which was contributed by Rarst. In this article, we will be sharing a more advanced and more elegant code which lets you display twitter followers count in WordPress. Once again this script was also contributed by Rarst.
Features
This function is not limited to followers count. It can fetch any non-nested value returned by Twitter users/show API method.
It has two levels of cache:
- queried values are stored as array in database, using WP options, for $interval seconds;
- API responses are stored in memory so you can query any number of fields, without generating multiply API requests.
This should be safe to use for multiply values and multiply users at the same time, without worrying about exhausting API limit.
Tutorial
First open your theme’s functions.php file and add the following code:
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]; }
Usage
Once you have pasted the function, now you can use the code in any WordPress template file you like. Simply paste the following code:
echo rarst_twitter_user('wpbeginner', 'name').' has '. rarst_twitter_user('wpbeginner', 'followers_count').' followers after '. rarst_twitter_user('wpbeginner', 'statuses_count').' updates.';
The above code will display something like this:
WPBeginner has 5846 followers after 1300 updates.
Source: Rarst
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
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.