How to: Display your latest twitter entry on your WP blog

Many bloggers uses twitter, which is a very great way to socialize with other bloggers and promote your posts. Displaying your latest twitter entry on your blog is a good idea to help your readers staying tuned with you. This recipe feature a simple and “ready to use” code.

To display your latest twitter entry, just paste the code below anywhere on your blog.

<?php

// Your twitter username.
$username = "TwitterUsername";

// Prefix - some text you want displayed before your latest tweet.
// (HTML is OK, but be sure to escape quotes with backslashes: for example href=\"link.html\")
$prefix = "<h2>My last Tweet</h2>";

// Suffix - some text you want display after your latest tweet. (Same rules as the prefix.)
$suffix = "";

$feed = "http://search.twitter.com/search.atom?q=from:" . $username . "&rpp=1";

function parse_feed($feed) {
    $stepOne = explode("<content type=\"html\">", $feed);
    $stepTwo = explode("</content>", $stepOne[1]);
    $tweet = $stepTwo[0];
    $tweet = str_replace("&lt;", "<", $tweet);
    $tweet = str_replace("&gt;", ">", $tweet);
    return $tweet;
}

$twitterFeed = file_get_contents($feed);
echo stripslashes($prefix) . parse_feed($twitterFeed) . stripslashes($suffix);
?>

That's all! Your latest twitter entry is now displayed on your blog.

Credits goes to Ryan Barr for this awesome recipe!

50 Responses

Nov 04 2008 07:10

This is a great recipe. If you’re interested in going the other way, and allowing a user to send a link to Twitter, you can use the code here:
http://pastebin.com/f199c95d9

This alleviates the need to use a third party such as TwitThis.com – and it let’s you customize the message you’re visitors Twit. See it in action on my site (click my name – no spam urls from me!).

Nov 04 2008 07:53

Thanks for your link, this will probably be the subject of another recipe :)

Nov 04 2008 10:11

I get errors:

Warning: explode() [function.explode]: Empty delimiter in [URL removed on purpose] on line 34

Warning: explode() [function.explode]: Empty delimiter in [URL removed on purpose] on line 35

How do I solve this?

Nov 04 2008 10:23

Found out by visiting the original code…

Your code:
$stepOne = explode("", $feed);
$stepTwo = explode("", $stepOne[1]);

Should be replaced with:
$stepOne = explode("", $feed);
$stepTwo = explode("", $stepOne[1]);

Nov 04 2008 10:27

Damn, the code won’t show


should be between the empty quotationmarks (minus the space after the <)…

Nov 04 2008 10:28

Sorry, the code won’t show… but compare your code with the one shown in the original link, and you’ll see the difference…

Nov 04 2008 10:35

@m-alo: You’re totally right. Sorry for that mistake, I’m correcting the code right now. Thanks for letting me know!

Nov 04 2008 16:38

Yet another great code from you, Jean. I’m seeing the big jump on your subscribers count and to achieve it in such a short period of time is no easy feat.

Hey, I love the idea of “recommended premium themes” on your footer. What a smart way of affiliating! Keep up the good work, buddy.

Yan

Nov 04 2008 16:50

@Blog for Beginners: Thanks for your compliments, Yan! About the footer, I probably write a tutorial on how to achieve this on Cats Who Code, so stay tuned :)
Have a great day my friend!

Nov 05 2008 08:54

I sure could do with this. Have been looking for a Twitter “widget” thingy for a while now. This cut-and-paste code would do great for me. Thanks!

Nov 05 2008 19:09

Very good way to find out mistakes. Beta version rules :)
Can we get that twiter code with no mistakes? Thanks.

Nov 06 2008 00:39

@Daniel Richard: I have corrected the code, so it works now :)

Jan 08 2009 17:20

Anything I can do to lessen the plugin load of a site is well worth it. And this code did the trick in two seconds flat.

Thanks for sharing it; and thanks to Ryan for creating it.

Jan 18 2009 09:34

thans for your share,I have copy your code and set my twitter user name,but it doesn’t work,what’t wrong whit it.

Mar 04 2009 23:11

Yes, I have also copied your code and changed the username but I am getting error messages too. A warning comes up about URL file-access is disabled in the server configuration. Any thoughts?

Mar 06 2009 01:37

Wondering if it was possible to allow multiple instances of this? We all use twitter on the site and would like to show all 4 of our latest tweets. is this possible? I tried coping it and got a “cannot declare parse_feed()”

Mar 12 2009 13:34

Is it possible to hide @replies from showing up ?

Mar 15 2009 08:53

Even better, how about adding a specific hashtag to only the posts you want to show up on your blog from twitter. Modify the search feed definition as follows:

$blogtag = “twitblog”; //Replace this with whatever your hash tag is

$feed = “http://search.twitter.com/search.atom?tag=” . $blogtag . “&from:” . $username . “&rpp=5″;

May 04 2009 10:58

Simple receipt but it works, thanks a lot!

May 09 2009 09:03

ohw no…my blog error when copy paste to widget.php. Why i should ???

Jul 13 2009 23:30

how do I display more than one tweet?

Jul 21 2009 15:01

If u want to display more than 1 post and record your tweets into SESSION, use this script (made by my friend Gustavo Straube):

$twit = stripslashes($twit);
$twit = preg_replace(‘/(http:\/\/[a-z0-9\-_\.\/\?&=%]+)/i’, ‘$1‘, $twit);
echo $twit;
$twits = NULL;
if (!empty($_SESSION['twits'])) {
$twits = $_SESSION['twits'];
} else {
$username = ‘username’;
$feed = “http://search.twitter.com/search.json?q=from:{$username}&rpp=10″; // displays your last 10 tweets
$result = @file_get_contents($feed);
preg_match_all(‘/”text”:”(.*?)”/i’, $result, $m);
$s = count($m);
if ($s > 1) {
$twits = array();
foreach ($m[1] as $twit) {
$twit = stripslashes($twit);
$twit = preg_replace(‘/(http:\/\/[a-z0-9\-_\.\/\?&=%]+)/i’, ‘$1‘, $twit);
$twits[] = $twit;
}
$_SESSION['twits'] = $twits;
}
}
if (!empty($twits)) {
foreach ($twits as $twit) {
echo “” . $twit . “”;
}
}

Sep 07 2009 15:47

I tried integrating this script into a theme I’m developing and it no longer works. Is it possible that Twitter has changed something that would be causing this?

Sep 17 2009 13:10

Hey, This is an AWESOME fix for a single tweet, but multiple tweets are a little more difficult, I wrote this(its 100 lines so you may want to turn it into a function..)

http://killainstnct.com/?p=78

Check it out if you want to display basically an unlimited number of your tweets(or however many twitter remembers?)

Oct 28 2009 16:20

Thanks for this recipe. Really helpful :)

Nov 05 2009 13:55

I used this solution (ie: pupidizuccaro.com) but it doesn’t work anymore.
Why?
Some week ago it was good.

Nov 05 2009 14:01
Nov 12 2009 15:57

Using this in a new theme I’m developing but would like to display the single tweet with retweet, reply, and follow links. Aswell as one to take them directly to my twitter page of course.

Is there something as simple and n00b-coder friendly that’ll do this (that isn’t a plugin)?

Nov 22 2009 14:14

I just added your code to my website but found that it was adding my6 website as a prefix of any links in my latest tweet. Any ideas on why this is happening and how I fix it?

Nov 22 2009 14:55

Does this just work for wordpress blogs or also for my homepage?

Dec 13 2009 15:36

Thanks for this, very useful!

Any idea how one could go about deferring the twitter info to load last on a page?

The issue is, putting this in a custom sidebar prevents the rest of the sidebar from loading until twitter has return the tweet.

Depending on the user’s geo-location in relation to the Twitter server & their connection type (many upcoming WLAN services have broadband speed but also with high latency for initial server requests), it could take another second or 2.

This extra delay is undesirable, would rather the load / user experience be:

1) Page loads and looks nice.
2) Any external calls are then loaded and it just works.

Any ideas? Thanks again!

Dec 15 2009 13:33

i am facing a problem when i add your code. it gives error like this

Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\wamp\www\TestBlog\wp-content\themes\Kennedy\l_sidebar.php on line 60

Jan 07 2010 19:00

I can get it to work.

I get this message:

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /var/www/vhost/creapolispublicidad.com/home/html/01/wp-content/themes/creapolis/index.php on line 66

Trackbacks:

Leave a Comment

* Name, Email, Comment are Required