I’m trying to find a spec for the WordPress WXR import/export standard and I’m unable to find any official documentation from WordPress on the standard.
Does anyone know of an official resource that could tell me exactly how to produce a WXR file so it will automatically import into either WordPress.com or WordPress self-hosted sites?
I’m specifically trying to create a WXR export system for an existing CMS so that users can move to WordPress easily.
I posed this question to John O’Nolan, a WordPress core developer, who forwarded my question to core committer Aaron Jorbin. O’Nolan responded by saying (I’m paraphrasing) that there isn’t any official documentation on the WXR standard, but that reverse engineering a WXR export should give me all the information I need.
O’Nolan also noted that data more complex than blog post content is likely best dealt with through a database conversion/migration, rather than an import. I tend to agree here.
I found these two links to be of some help in my effort to reverse engineer the WXR standard:
http://ipggi.wordpress.com/2011/03/16/the-wordpress-extended-rss-wxr-exportimport-xml-document-format-decoded-and-explained/
http://olalindberg.com/2008/write-your-own-wxr-file-to-migrate-custom-cms-to-wordpress/
The latter link specifically deal with attachments, something crucial for my current project.
I hope this helps anyone else who is curious about WXR.
If you need to make a WXR file without the benefit of a sample to imitate, do not fear. The code for the WXR exporter itself is on GitHub.1 An excerpt is reproduced below, from the
<rss>
node to a couple objectforeach
loops.With the full code, you should be able to reverse-engineer a WXR from whatever backend you are using.
1 Formerly at the WordPress plugins Trac server. Thanks to fooquency for the new link.