How-to: Migrate data from WordPress 2.9 to WordPress 3.0(subsite)

This is exactly how I get my original data of back online to
My method requires you have an idea of database, a little bit MySQL programming skills, and a DIY-holic spirit.

First allow me to introduce my situation, you know, the context.
1.I’ve been added a new sub site (Thanks to the new WP 3.0, the steps are pretty easy, check out the official guide here. Naming it en ‘coz the posts are in English).
2.and I’ve had a database online where all my previous data of are stored there.
3.Besides, I’ve uploaded all my uploads(/wp-contents/uploads) to my current hosting server(since I already knew that all subsites of WP 3.0 share the same uploads folder, I then uploaded them to that folder as well).

One more thing, a simple look at the database you’ll know that WP will save the all of your new sites’ data in the tables with the prefix wp_2_, like wp_2_posts, wp_2_terms, etc. Besides, further side by side table compare will tell you that which table/data are created by your installed plug-ins, other than WP itself(I assume here your new site are a fresh install until now, like I did).

Now time to figure out what exactly you wanna transfer.
In my case, all I care about is my posts, pages, tags, categories and comments. No links, since I didn’t have many. No user either, since I’m the only author.

Warning: I suggest you do a database backup before start. Log on to your phpMyadmin panel, open two tabs which shows your the old and the new database.

OK,now showtime.

first, the posts and the pages, accordingly the table wp_posts.

1. Modify the old wp_posts table.
>>rename it to wp_2_posts.
>>remove the field post_category, ‘coz there’s no such a field in the new wp_2_posts table accordingly.
>>update the domain name string in the post_content. In my case, from to
update wp_posts set post_content=replace(post_content,’’,’’) WHERE instr(`post_content`,’’)>0
>>export the data to a zipped sql file and save it to your local hard disk.

2.Modify the new wp_2_posts
>>clear the table
>>uncheck the field ID‘s AUTO_INCREMENT property.

3.Transfer the data.
>>goto the new database and import the data.

4.Enable the new table wp_2_posts.ID‘s AUTO_INCREMENT.

Visit your blog and you should see your posts back.  Great, eh? Not finished yet, let’s move on.

Now comments, obviously the table is wp_comments(I just leave wp_commentmeta out and seems until now everything works fine. but if you think it wrong, please correct me via comments). Most of the steps are similar to what we’ve done in posts actually. Here they are.

1.Update the old wp_comments table.
>>rename wp_comments into wp_2_comments

>>Url replacement in two fields: `comment_author_url and comment_content.
update wp_2_comments
set `comment_author_url`=replace(`comment_author_url`,’’,’’),comment_content=replace(`comment_content`,’’,’’)

2.Prepare the new wp_2_comments table.
>>do the clear, like we do in the posts;
>>uncheck comment_ID‘s AUTO_INCREMENT.

3.Export the data from old table and then import it into the new one.
4.Restore the new table’s AUTO_INCREMENT.

Last, the tags and categories. They all are in the following tables: wp_2_terms,wp_2_term_relationships and wp_2_term_taxonomy.
Basically the steps are the same: clear data for the new table, disable AUTO_INCREMENT if necessary, do the export and import, finally enable AUTO_INCREMENT accordingly.

All done and enjoy.

WPtouch – The Coolest WP Theme for mobile

Just happened to get this new theme from the admin page by the part of plugins->most popular. After a little bit playground I think it deserves a new post to recommend to my readers.

Official website is here. And the latest version is to WP for its very charming feature of installing/upgrading the plugin in the admin page directly. Very nice.)

Below is what this site looks like in the iPhone’s safari browser.


I don have other mobile devices like gPhone or Blackberry, so don know how it performs in that devices. It does look quite nice at least in the iphone.

Besides, it loads fast and the user experience of the whole ajax-powered interface does make me very satisfied. Not mention its very nice feature of allowing the reader to switch between the regular lookings and wptouch version. Really cool, isn’t it?

I should say, with wptouch, time to say goodbye to my long-used iwphone plugin.