Fresh off the press, just finished coding a tool to that will export all the posts in your Tumblr blog into an XML file. You can then import that XML file into your WordPress.com blog or self-hosted WordPress blog.
Please leave a comment here if you have questions, suggestions, feedback, requests, and/or bug reports.
Tags: tumblr, wordpress, wordpress.com

August 19, 2008 at 1:38 am
Hao, thank you SO much for this, omg!!!!!
August 19, 2008 at 1:40 am
welcomes!
August 19, 2008 at 7:23 pm
[...] اصل مطلب [...]
August 22, 2008 at 10:02 am
[...] Export your Tumblr blog to WordPress « Web 0.2 – Hao Chen (tags: tumblr wordpress) « links for 2008-08-21 [...]
August 23, 2008 at 2:22 pm
So the corollary to this is a WordPress plugin that will keep WP posts up to date from Tumblr entries. Interesting.
August 23, 2008 at 2:38 pm
[...] like to see something for some cross pollination now regarding keeping the two services in sync: Export your Tumblr blog to WordPress « Web 0.2 – Hao Chen. I’ve fiddled with Tumblr a little, but ended up giving in to WordPress, but would not mind [...]
August 27, 2008 at 1:52 pm
the link seems to be down right now
August 27, 2008 at 1:56 pm
Sometimes, it gives a PHP access violation, but if you refresh again, it usually comes up. It’s weird.
August 28, 2008 at 10:54 am
worked great – thanks!
September 6, 2008 at 3:02 am
So which import method (in the WordPress admin Import tab) should one use with the resulting XML file? I don’t see any import method for “XML file”.
September 8, 2008 at 10:45 am
@George, import as a WordPress type.
October 9, 2008 at 3:27 am
thank you so much, this worked amazingly, on one try!
October 9, 2008 at 11:34 am
Laura, you’re very welcome!
October 14, 2008 at 5:04 am
Занимаюсь дизайном и хочу попросить автора haochen.wordpress.com отправить шаьлончик на мой мыил) Готов заплатить…
October 26, 2008 at 7:45 pm
links broken!
October 26, 2008 at 7:47 pm
actually its up, thanks a million!
November 2, 2008 at 2:11 am
it asks for a tumblr username, what is the user name? i dont remember tumblr having user names, only emails.
November 2, 2008 at 3:32 am
nevermind, i got it. haha
November 21, 2008 at 12:14 pm
I have a lot of images with click-though links: the images come through but not the links themselves?
November 26, 2008 at 1:59 am
hello. my tumbler name is enzoajello but when i use the tool it brings back the feed from enzo.tumblr.com, not enzoajello.tumblr.com. any ideas?
December 9, 2008 at 7:42 pm
is my username whatever is before .tumblr.com???
December 9, 2008 at 11:56 pm
Yes.
December 16, 2008 at 7:22 pm
I can get these to import to a temporary WordPress.com blog, but not my wordpress blog hosted my ReadyHosting.
It worked once (beatifully) before I was ready to migrate. Now that I’m ready it just doesn’t work. I’ve even re-installed wordpress and created a new db, but not seeing much luck.
Scott
December 16, 2008 at 9:56 pm
@bigscottyrogers What’s your Tumblr username? Are you checking off the self hosted wordpress option?
December 16, 2008 at 11:30 pm
Howdy.
“scottrogers” is the user name. Yes, I’m checking the hosted option. The WordPress (2.6) import page let’s me browse for the file and press the install button. The page that processes the XML file loads, but no processing takes place.
I’ve tried on two separate machines running OS X and XP and a few different browsers. I’m thinking there’s an issue with my host.
Thanks.
Scott
December 22, 2008 at 10:02 am
[...] Export your Tumblr blog to WordPress « Web 0.2 – Hao Chen Fresh off the press, just finished coding a tool to that will export all the posts in your Tumblr blog into an XML file. You can then import that XML file into your WordPress.com blog or self-hosted WordPress blog. (tags: tools wordpress) [...]
January 3, 2009 at 11:43 am
this is fantastic – great work!
January 3, 2009 at 2:03 pm
Very nice work. Thanx.
The click-though image links is a problem.
January 25, 2009 at 2:06 am
[...] Here’s a tool to help you export Tumblr to WordPress: Tumblr to WordPress Export Tool’ [...]
February 7, 2009 at 5:05 pm
Nice work. However I couldn’t import videos properly.
I lost the embeded video.
tnx!
March 5, 2009 at 7:41 am
Thank you, it works great :)
One concern, though. New posts usually have three-digit post IDs (since I have about 600 WordPress posts). After importing my Tumblr backlog of about 50 posts, the post IDs have suddenly jumped to 8 digits! New WordPress posts continue in this fashion. Is this normal behaviour? If not, is there anything I can do about it? Thanks in advance!
March 5, 2009 at 11:08 am
@Jay It might be importing the post IDs from Tumblr. I have the source included on the page if you want to take a quick peek and make a mod. Maybe not setting the post ID will result in auto incrementing post IDs.
March 5, 2009 at 12:05 pm
Wow, thank you for your prompt reply! And yes, you are right, the long post IDs are indeed from Tumblr.
I just took a look at the source code and unfortunately I am not very proficient at PHP.
Would I accomplish not setting the post ID by removing the entire line which sets the post ID, such as this one?
attributes()->id ?>
I’m pretty sure it’s not that easy, lol. Just thought I’d ask before I give up. I wish I could just accept the fact that I now have really long post IDs, but I’m such a terrible neat freak. :s
March 5, 2009 at 1:07 pm
Yeah, it quite possibly could be that easy (removing that entire line). However, even if you re-imported to WP, I’m not completely sure that it will reset WordPress’ post ID back to what is was originally. If that’s the case, one option might be to go directly into the MySQL database and do something like ‘alter table “table_name_with_posts” auto_increment=1′.
March 5, 2009 at 2:09 pm
Yay, I tested this on a test installation of WordPress, and omitting the lines really did the trick. :)
It did indeed not reset the post IDs and I didn’t manage to fix this in the database. But it doesn’t matter. I have daily database backups for my blog so I just did a restore to the 3-digit era ;). I imported the Tumblr posts on Monday and didn’t notice the ID thing until last night, so I used Sunday night’s backup and only lost one blog post and a couple of comments (still have them in a backup so I might find a way to re-import them). It’s a tiny price to pay for having everything in once place now. :) Again, thank you.
March 5, 2009 at 2:22 pm
You’re welcome. :)
March 12, 2009 at 11:55 am
thank you so much for this little tool. I needed to export my tumblr to squarespace and this worked an absolute treat so thank you!
-tom
March 12, 2009 at 12:59 pm
You’re very welcome, Tom!
September 9, 2009 at 12:33 pm
tom, any advice you can give?! ive been trying to find a way to import my old tumblr blog posts into squarespace…
March 12, 2009 at 3:17 pm
Hao,
Thanks! I’ve been looking for something like this for my site, http://www.darrenscorner.com. Much appreciated!
March 12, 2009 at 3:48 pm
Glad to be of service, Darren. Cool blog!
April 7, 2009 at 5:31 pm
Is there any way to do this so that every time I post something to Tumblr, it automatically goes straight to my WordPress, too?
April 8, 2009 at 1:07 am
@mrrrty Hmm…No, but maybe look into the WP plugin that synchronizes two feeds.
April 12, 2009 at 1:14 pm
Hi Hao, any ideas on why the imported timestamp would be a few hours off for every post?
For example: a post from Tumblr on Apr 10th, 2009 2:58pm is showing up on Wordress as having been posted on “April 10, 2009, 5:58 pm.” The WordPress time is wrong.
I’ve tried adjusting the timezone under WordPress’ Settings to compensate — multiple times, on multiple fresh installs, both before and after importing. Nothing I did made that time budge from 5:58 pm.
In the actual XML for the exported Tumblr, pubDate is Fri, 10 Apr 2009 14:58:51 +0000, wp:post_date is 2009-04-10 17:58:51, and wp:post_date_gmt is 2009-04-10 21:58:51. So I guess it should be using pubDate, and it’s using wp:post_date instead?
Unfortunately, manually editing is totally out of the question, either inside the XML or in WordPress. I’m importing 3,000 posts from Tumblr, and the times are are few hours offset on ALL of them.
So, any thoughts? Thank you very much.
April 12, 2009 at 9:16 pm
@rika Hey, I would download the source code from http://code.google.com/p/tumblr2wordpress/ and play around with these three lines:
<pubDate><?php echo $post->attributes()->date ?> +0000</pubDate>
<wp:post_date><?php echo date('Y-m-d G:i:s', (double)$post->attributes()->{'unix-timestamp'}) ?></wp:post_date>
<wp:post_date_gmt><?php echo str_replace(" GMT", "", $post->attributes()->{'date-gmt'}) ?></wp:post_date_gmt>
You’ll need something that has PHP 5+. Lemme know if you find any bugs!
April 14, 2009 at 3:56 am
Thanks a lot!! I bashed my head over the problem for MANY hours, but tonight I finally got it working! Woo!
One more question, then you’ll be free of me :D Would it be easy for you to cook up a code snippet that discerns the type of Tumblr post, and then puts it into a certain WordPress category based on Tumble type, instead of just Uncategorized?
I ask because there’s a Tumblr imitation theme for WP, where the style of the post varies by WordPress category (just as it does for Tumblr post types). The categories it uses are: thoughts (for text), photos, quotes, links, video, conversations. Not sure if it’s too much work to ask of you, or if it’s even possible, but if the exporter could put Tumblr quote posts into a quotes category on WP, and photo posts into photos, etc., that would be AWESOME.
April 14, 2009 at 3:54 pm
@rika Hahaha. Yeah, sure, I can do that. Give me a couple days.
April 14, 2009 at 5:52 pm
Thanks so much for this!! It came in handy.
April 25, 2009 at 5:50 pm
You’re welcome, Adam. :)
April 15, 2009 at 3:03 am
Oh man, really? SWEET. Thank you so much for offering to do that! I’m overjoyed. Overjoyed as only a person who has been spared the task of manually reorganizing 3000 posts can be overjoyed. Can’t wait! I’ll be checking back very frequently.
April 25, 2009 at 5:47 pm
Hey! Sorry, it took me so long; Busy week…Anyway, here it is! Replace the getTags function with this new one:
function getTags($post)
{
if($post->attributes()->type)
{
echo "attributes()->type . "]]>\n";
echo "\t\tattributes()->type . "\">attributes()->type . "]]>\n";
}
else
{
echo "\n";
echo "\t\t\n";
}
if($post->tag)
{
foreach($post->tag as $tag)
{
echo "\t\t\n";
echo "\t\t\n";
addTag((String)$tag);
}
}
}
If you don’t like the category names (ie. regular, photo, link, quote, video, audio, etc.), you can change them in WordPress after the import. Let me know if it works!
May 2, 2009 at 12:58 am
It’s not working for me. Is it because I am not self hosting?
Cerentha
May 4, 2009 at 10:54 am
What’s your Tumblr username? Is it the XML file that isn’t being generated or the import into WordPress that isn’t working? Also, there is a radio option box to choose between self hosted WP and WP.com.
May 4, 2009 at 3:33 pm
It’s so weird. The XML file gets generated (using cerentha@mac.com which is what I use to log into Tumblr). BUT the XML file contains someone else’s blog. I imported over 1000 posts of some guy’s blog into my wordpress blog and then had to delete it all!
Help?
Cerentha
May 4, 2009 at 9:39 pm
I used thisisadesignblog and it worked a dream! Thank you so much. My final blog on Tumblr and my next WP post will be all about how great you are! Much much appreciated.
Cerentha
May 4, 2009 at 9:47 pm
[...] didn’t want all that work to go to waste. Enter Hao Chen. What an awesome guy. He has written code to enable Tiumblr users to save their posts as an XML file so they can be transferred into WP. Not [...]
May 5, 2009 at 11:11 pm
Tool seems great, but can’t get it to work for me. When I open the XML file in a browser the only thing that shows up on the page is:
Untitled http://gmail.tumblr.com/ Tue, 05 May 2009 22:59:56 -0400 http://haochen.me/tumblr/?v=0.1 en 1.0 http://gmail.tumblr.com/ http://gmail.tumblr.com/ uncategorized
My tumblr username is thomasjoshuawhitley@gmail.com. I’ve tried it twice now with the same result.
May 6, 2009 at 10:24 am
Hey, Thomas…Sorry ’bout that…I wrote bad directions. Try your Tumblr blog name (ie. xyz.tumblr.com) and not your email/username. I’ve changed the directions on the tool to match.
May 10, 2009 at 5:32 am
[...] was about four months quicker than expected, due to this handy script. Posted by thomas on Sunday, May 10, 2009, at 1:53 am. Filed under Uncategorized. [...]
June 17, 2009 at 11:00 pm
wow. I love you. PERFECT!
June 21, 2009 at 1:44 pm
THANK YOU
June 23, 2009 at 9:41 pm
Hello Hao,
I managed to import my blog posts from my tumblr: http://www.danlittauer.tumblr.com
So, great! Thank you for that!
Is there a way I can import my theme or adapt it into wordpress?
Thanks so much!
June 24, 2009 at 10:35 am
You’re welcome! As far as I know, it’s possible to recreate Tumblr themes for WordPress, but takes manual effort porting the CSS over. Here’s a list of Tumblr-like themes for WordPress. http://wordpress.org/support/topic/235926
July 1, 2009 at 7:09 pm
Helllo,
I have a very strange problem; I have installed wordpress 2.8 on my host (www.agnosco.iblogger.org) and imported my posts in xml from my tumblr site (danlittauer.tumblr.org) – i have mixed language (english, hebrew, arabic, portuguese) posts and the non english ones came up with question marks… I have been unsuccessful at solving this even after reading docs in wordpress…
The very strange thing is that when I imported it to the wordpress.com account it works (www.danlittauer.tumblr.com), how come?
Are there any files I need to install on my host?
Please help,
Kind regards,
Thanks,
Dan
June 30, 2009 at 12:51 am
say we update our tumblr, will it also update our wordpress? or will we have to delete the xml file, redownload it, and reupload it
thanks!
I wish tehre was a tumblr plug in for wordpress because our wordpress posting doesn’t allow us to post things with html :(
June 30, 2009 at 9:37 am
No, sorry, it won’t update wordpress automatically. However, there might be a wordpress plugin that does cross posting if you keep digging around.
July 30, 2009 at 6:58 pm
Heads up: If you have domain mapping on, it won’t work. Remove the mapping and re-try.
July 30, 2009 at 9:48 pm
thanks a lot…that tool was so helpful!!!
July 30, 2009 at 10:09 pm
[...] This is my new personal blog! Posted in my life by thunderror on July 30, 2009 I’m back again blogging on wordpress.com after a long long time. I use the wordpress engine on my main blog. But then for a long time, tumblr has been my blogging engine of choice for my personal blog. That is, until today. But I didn’t want to let go off my posts..Thanks to Hao Chen’s Tumblr to WordPress import tool! [...]
August 7, 2009 at 6:53 pm
The link seems to be broken? Do you still have this tool online? I would love to try it.
August 8, 2009 at 12:43 pm
Should be up. Host can be unpredictable. Try again http://haochen.me/tumblr
August 12, 2009 at 10:33 am
[...] Porch, which I’ve moved off Tumblr and onto a WordPress installation with the aid of a handy export tool I found online. I may or may not stick with the current design; most of my attention so far has [...]
August 18, 2009 at 3:48 pm
Link doesn’t seem to be working again. It says the page cannot be displayed when I click on it.
August 18, 2009 at 5:05 pm
Yeah, looks like there is some issue resolving DNS from Layerblue, my hosting company. None of their hosted sites are working right now.
August 26, 2009 at 7:34 pm
[...] August 26, 2009 in Uncategorized Thanks to Hao Chen for his directions on how to import my blog from Tumblr to WordPress — http://haochen.wordpress.com/2008/08/19/export-your-tumblr-blog-to-wordpress/ [...]
September 3, 2009 at 5:49 pm
Cool site, love the info.
September 8, 2009 at 4:47 am
hi, it doesn’t work correctly ,
it created like 200 new categorys, one for each post. instead of putting all uncategorised posts in one. Had to delete post by post and category by category..
i will continue to use http://beta.switchabit.com/ for new posts and forget the import i guess
September 9, 2009 at 2:20 pm
Does this auto update? Or do i have to keep exporting a new XML file?
September 9, 2009 at 2:26 pm
Does not auto update. There is a WP plugin for that. Exporting a new XML file will cause dupes.
September 9, 2009 at 2:33 pm
okay. Thanks
September 18, 2009 at 1:48 am
Thanks for making this program. We switched our Tumblr blog to a new WordPress site in minutes without a hitch. Saved us hours of work. Much obliged.
September 25, 2009 at 10:05 pm
THANK YOU!!!!!!! You saved me from a lot of copying and pasting! lol
November 5, 2009 at 12:57 pm
Hey — thanks for this.. we just used it to convert and dropped some money in your inbox! Very nice, saved me an hour and did a good job.
If you want to try out our service for free, go to http://www.talk2.us/trial. Send in an email and reference this and we’ll bonus you another month. Thanks man!!
November 17, 2009 at 1:23 am
Your method does not work if we are using custom domain on tumblr.
Update instructions on your tool page that in such cases, use the corresponding old subdomain of tumblr.
November 17, 2009 at 5:22 pm
Thanks a lot :)
November 19, 2009 at 7:54 am
I keep getting “Service Unavailable”! Will it be back up soon? Thanks
November 19, 2009 at 2:16 pm
Hi, it worked – saved me loads of time. Seems to be the easiest way I’ve found, and the only way to do it this quickly.
I have donated (sorry it’s not much!) and urge others to – we’re lucky to have this service for free.
Thanks again, Hao!
November 26, 2009 at 3:11 pm
Excellent.Thanks a lot for the tool
May 4, 2009 at 4:27 pm
Hey, sorry you had to go through all that! Someone else had the same problem. Try typing in another value for the username (don’t use your tumblr login name)…I think it would be [this value].tumblr.com that corresponds to your tumblr. Maybe you can find the value somewhere in the Tumblr Admin section. Also, open up the XML file afterwards to make sure it contains the correct posts! LMK if you find the right value.
May 4, 2009 at 4:30 pm
Hey, try this value: thisisadesignblog