I found this great post here. Check this blog out if you want more wordpress advice.
I wanted to show my latest tweet on the front page of this site, and although I know there are several plugins which probably could’ve helped me do this, I decided to see how easy the API was to use.
It turned out to be incredibly easy, as long as you have PHP 5.2 or higher, that is.
This is the code:
require_once(ABSPATH . 'wp-includes/class-snoopy.php'); $snoopy = new Snoopy; $snoopy->fetch("http://twitter.com/statuses/user_timeline/jdevalk.json?count=1"); $twitterdata = json_decode($snoopy->results,true); echo "<p>\"".$twitterdata[0]["text"]."\"</p>";As you can see, I use the Snoopy library to fetch the data, as that comes with WordPress by default. Than I decode the JSON results by using the
json_decodefunction. This is the reason you need PHP 5.2 or up, as this was only included with this version of PHP.Next, we output it. Of course, this is a quick & dirty implementation. If I got dugg now, and 1,000 people a minute came looking at that page, it should have some sort of caching in there. For now though, this is fine as it is!
Update: As Kim noticed in the comments, I’ve added some code to automatically link any @username mentions to those usernames. Replace the last echo line above with this:
$pattern = '/\@([a-zA-Z]+)/'; $replace = '<a href="http://twitter.com/'.strtolower('\1').'">@\1</a>'; $output = preg_replace($pattern,$replace,$twitterdata[0]["text"]); echo "<p>\"".$output."\"</p>";You could even decide to add
rel="nofollow"the$replaceif you don’t want those links to give juice.Update 2: To make it even more complex, here is the entire code I now use, which excludes replies and caches the Twitter API requests so you won’t overload the API:
require_once(ABSPATH . 'wp-includes/class-snoopy.php'); $tweet = get_option("lasttweet"); $url = "http://twitter.com/statuses/user_timeline/jdevalk.json?count=20"; if ($tweet['lastcheck'] < ( mktime() - 60 ) ) { $snoopy = new Snoopy; $result = $snoopy->fetch($url); if ($result) { $twitterdata = json_decode($snoopy->results,true); $i = 0; while ($twitterdata[$i]['in_reply_to_user_id'] != '') { $i++; } $pattern = '/\@([a-zA-Z]+)/'; $replace = '<a href="http://twitter.com/'.strtolower('\1').'">@\1</a>'; $output = preg_replace($pattern,$replace,$twitterdata[$i]["text"]); $tweet['lastcheck'] = mktime(); $tweet['data'] = $output; $tweet['rawdata'] = $twitterdata; $tweet['followers'] = $twitterdata[0]['user']['followers_count']; update_option('lasttweet',$tweet); } else { echo "Twitter API not responding."; } } else { $output = $tweet['data']; } echo "<p>\"".$output."\"</p>";As you can see it also saves the amount of followers you have into
$tweet['followers'], which I then use to display this:<p> <a href="http://twitter.com/jdevalk"> <?=$tweet['followers']?> followers on Twitter, and you? </a> </p>Update 3: Another fix to automatically make all links clickable, below this line:
$output = preg_replace($pattern,$replace,$twitterdata[$i]["text"]);Add:
$output = make_clickable($output);This will use the WordPress internal
make_clickablefunction to make sure that all URL’s are clickable.Enjoy!
This sounds good, but why don’t you make it as a WP-plugin