Latest Tweet in WordPress

Whilst looking for a plugin that would display my latest tweet on my homepage, I came across this post. I hadn’t realised it was such an easy task, hardly requiring an entire plugin.

I decided to adapt the code a bit, as fetch_rss() is now deprecated and I also wanted to display the date and time of the tweet, which this code doesn’t do as is.

I’m sure this isn’t really anything new, but I was just pleased with how simple it is to do. Here’s the code I came up with:

function latest_tweet(){
	$tweet_feed = fetch_feed('http://twitter.com/statuses/user_timeline/135931380.rss');
	$tweet = $tweet_feed->get_items(0, 1);
 	echo '<p>' . $tweet[0]->get_date('jS F, G:i') . '</p>';
	echo '<p>' . str_replace('rosshanney: ', '', $tweet[0]->get_content()) . '</p>';
}

That bit goes in your theme’s functions.php. Then you just need to add this next bit into your template files wherever you want the tweet to appear.

<?php latest_tweet(); ?>

I’ll go through the functions.php code line by line.

$tweet_feed = fetch_feed('http://twitter.com/statuses/user_timeline/135931380.rss');

This line uses the fetch_feed() function to retrieve the twitter feed. It is returned as a SimplePie object. You’ll need to replace the feed URL with your own, which you can find in the sidebar of your Twitter profile.

$tweet = $tweet_feed->get_items(0, 1);

We just want the latest tweet, so this line uses the get_items() function to extract only the most recent tweet. You could easily change the paramaters here to show more tweets.

echo '<p>' . $tweet[0]->get_date('jS F, G:i') . '</p>';

This line outputs the date and time the tweet was posted using the get_date() function. You can easily change the way that the date is formatted by adjusting the date format string. You can use any of the PHP date format thingies.

echo '<p>' . str_replace('rosshanney: ', '', $tweet[0]->get_content()) . '</p>';

The last line uses the get_content() function to output the tweet itself. I’ve used str_replace() to remove my username from the start of the tweet, but you don’t have to do this.

Not bad for four lines of code :)

As John Kolbert says, WordPress caches the tweet(s) for a while, so this may not be the solution for those who tweet very often.

 

Update : Shortly after posting I found a nice way to automatically link any @replies, #hashtags or URLs in your tweets, requiring only a small change to the above code. Check out this post.

Update : I’ve extended this a bit more to deal with Twitter not responding, in this post.