It’s been quite a while since I’ve been looking for a way to transfer a website from Wordpress to Spip, without any luck. There is a small php script deep in the mailing archives of rezo.net. But it was not doing the job the way I wanted. Script works ok, but doesn’t make a difference between articles and documents. However, it helped me write something else suitable to my needs.
Please note that the process described hereunder might not work for everybody. But with a little bit of Spip and Wordpress knowledge, it can easily be tweaked to suit your needs.
We take the database from wordpress and add it to the Spip database. By calling a special template page, we will generate an xml file (dump) that Spip will load through his backup functions.
Don’t do this on a production server. Copy your whole wordpress website on a test server to be sure not to delete anything
(on the same web server as wordpress)
- Install and configure a fresh Spip
- Export a temp/dump/mon_spip_website.xml file via "Site maintenance"
- Copy and insert the wordpress database in the same database used by Spip
- Edit the template wp2spip-0.1.html and replace the necessary lines so it looks like mon_spip_website.xml. What you absolutely need to replace is:
- Spip version notes
- Informations about auteur 1 (website administrator).
- "metas" (spip configuration)
- Move wp2spip-0.2.html in the folder squelettes/ and call this page with a browser.
- Save the result in a raw format (the source) under a name like wordpress.xml and upload it to temp/dump/
- Load this file via la "Site maintenance". If everything went alright, you will have all the articles and the comments from wordpress in your newly created spip. ;-)
Like I said, this script is not a full-proof solution. I had to make certain decisions while writing it to make it work as I needed. So, there is missing functions in it.
Here’s what it does (or not) do:
- copies all published articles (not the others) in a section called "site"
- attachment articles are converted into referenced documents (they still stay in their wordpress folder) and are bounded (+ <embX> ) to the spip article they relate to. (Only for the following file formats: jpeg, gif, png, mp3, mpeg, asf et wma)
- article categories are converted into keywords from the goup "mots clef de wp"
- only validated comments are saved
- links are saved
- pages are not imported
I’d like it to look for <a href=" "><img src=" " /></a> and turn them into en <embX> and other little handy things like that. With a little help, I might extend this script to make it more like a general solution for everyone.