Migrating from WordPress Multiuser (WPMU) 1.2.4 to WordPress 3.3.1

This post covers how to resolve a few issues with using the import and export feature of WordPress multiuser 1.2.4 when migrating to the latest version of WordPress which at this time is 3.3.1.  I’ll start by explaining the process where you can export the blog posts, pages, categories and links in an XML format called WXR, or WordPress Extended RSS.  You can then take this export and import it into another blog like the latest version of WordPress.

I’ll start by going over how export which is just go to Manage > Export which will then allow you to download the XML for the specific site your on.  Please not that you will need to go to each of your blog sites of the WPMU and use the export to WXR to get all the data for each of the sites.

Importing the XML is simple enough.  Just go to Tools > Import in the WordPress admin area.  This will probably require you to download the plugin and install it.  It’ll also bark about not being able to upload unless the /wp-content/uploads/ or what ever directory you selected for uploads is writable by the server.  Once you’ve done this and get a bunch of options to import from just simply select WordPress.  You’ll then come to a page that should tell you to select a WXR file to upload.

This is where changing the WXR file may be necessary.  I would at this point recommend backing up your current database information in case the import isn’t exactly what you expected.  Once your information is backed up then open up the XML export and verify the following tags exist and look correct:

Make sure that the following tag exists: <wp:wxr_version>1.0</wp:wxr_version>.  If this tag doesn’t exist then you’ll find that the importer will throw up an error saying that the WXR is invalid.  I plugged in version 1.0 though the current version is at 1.1.  I

Next you’ll want to take a look at how your category tags look within the <items>.  You’ll see a bunch of <wp:category> with nicenames listed at the top of the feed and those should be fine.  I’m talking about the ones specific to each post and page.  If they look like this:

<category><![CDATA[News]]></category>

Then you’re going to need to update them with a domain and nicename attribute to look like this:

<category domain=”category” nicename=”news“><![CDATA[News]]></category>

I did this with just a few simple search and replace commands on the file.

Search: ‘<category
Replace with: ‘<category domain=”category”

This will define what type of category this is which all of mine were just categories which made my life easy.

Search: ‘><![CDATA[News]]></category>’
Replace with: ‘ nicename=”news”><![CDATA[News]]></category>’

Please note the beginning ‘>’ and space in those replace commands as that is important. This should setup your WXR to import correctly.  Well it did for me at least.  There was also an issue with the blogrolls, or links in the newer version, which didn’t import at all but I had so few that I didn’t feel like it was worth the time fixing the XML to make it work.

If you have any further questions feel free to contact me in regards to any of this via my contact form.  I hope this can be found useful to someone out there and I do offer cheap support for migrating websites from one host, platform, version to another.

Posted January 9, 2012 by Jason B. in PHP, Scripting, Web Development