Update #3 (26 April 2007): This plugin has been broken by changes made to feeds on Blogger, and is pretty much unusable anymore. The download links are still there so if you want to try it anyway you can do so. Try to see the method described in TechCounter (the last one) for a good method. Theoretically this would work but I have not tried it. Good luck!.
Update #2: Only 500 posts can be imported via RSS (Blogger limited the RSS feed to only contain 500 max posts). Check out comment 181 and 191 below for suggestions.
Update: This plugin is now known as Blogger RSS Import instead of New Blogger Import.
Back in December, I created a stand alone script to import Blogger Beta to WordPress. I didn’t really expect that many will benefit from it until I received so many comments and bug reports. So here is the improved version, as a plugin. Many improvements were done especially at the database side where WordPress functions are utilized, and there’s no security issue anymore.
Installation
As with any other plugin, here are the steps needed to install this plugin:
- Upload the script to /wp-content/plugins folder.
- Activate it under Plugins
- Look for it under the Manage menu. You should see Blogger RSS Import
Options
- Blogger ID: the front part of your Blogger blog. For example, if it’s http://myblog.blogspot.com then you need to enter myblog in the text box.
- Default author: if your blog only have one author (i.e. you) and you have created a user before using this script, you can select the user here. All of your posts will be associated to this user.
- Match authors…: this is useful if you have not explicitly created your username, or for multi user blogs. With this checked, the plugin will associate the authors with their own post. Any author not found in the system will be created as a subscriber (you need to edit the user later). This option overrides option 2.
- Default category: this option generally is the same as option 2 where a single category will be linked to your post. I leave this here for historical purpose and you might never know user’s preferences.
- Match categories…: import labels from your Blogger posts. If you don’t have any labels for your posts, it is safe to leave this unchecked and all posts will be associated with the value selected in option 4.
- Number of posts per cycle: This is the number of posts that will be imported per cycle, if you choose to have staged import. I recommend this for most users.
- I want to import everything all at once: this is the default behavior of the script when it was first released, until some users are having trouble with big number of posts to be imported from their Blogger. This disables the staged import and overrides option 6.
- Haloscan friendly: this option will cause your posts to have comment fields (invisible) for this Haloscan importer to work.
- Do not import comments: speeds up your import if you have no comment or 100% of your comments come from Haloscan, for example.
- Maintain my permalink: Blogger has a different way of setting post permalinks, and luckily it’s included in the feeds. Even if this is imported, you will need to edit your permalik structure to /%year%/%monthnum%/%postname%.html to work. Stephen might want to share his tips on this as he uses it.
Requirements
- Either allow_url_fopen is set to On, or the CURL extension is installed on the server.
- Full feeds are enabled on your Blogger (see image below)
- An open mind 😉
Will not work if…
- Your site is not hosted on Blogger server (i.e. on your own domain). You’ll need to republish everything on Blogger.
- You use other feed than Blogger feed (i.e. FeedBurner)
Tested on…
- WordPress 2.0.5
- WordPress 2.0.7
- WordPress 2.1
Credits goes to…
- My wife for being here for me
- Charles Wesley for suggesting CURL
- Dawn for the staged import
- John Halton for asking for the Haloscan import
- Stephen Newton for asking for Permalinks
- Ricardo for providing a testblog, and testing lots of things
- Andrea Trasatti for trying to help with the author & category matching
- Sander van Dragt for WordPress MU compatibility
- John Bindel for reporting and noticing the spot for the comments dates bug
And many thanks for the donators. Although I can’t withdraw money from Paypal, at least I can pay certain services. I appreciate your support.
Download
I know you are getting bored reading to all of text up there, so here it is:
new-blogger-import-1.0-final.zip (md5sum: 30538edd35c9427363e37dc842e78e07)
new-blogger-import-1.0-bugfix-1.zip (md5sum: 62ec6348b314df8ddd0d8df057e01812)
blogger-rss-import-1.1.zip (md5sum: 5e5b938a288eeb6cc1eb0e4f83edbd7a)
blogger-rss-import-1.2.zip (md5sum: ce31c1b8abf779c6758f026c2fd3bbfe)
blogger-rss-import-1.2.1.zip (md5sum: a4f6912601f25bee3c5ba31d9cd89769)
This is for users having trouble with the zip file: blogger-rss-import.txt (save as .php and upload it)
For those who would like to see the code: blogger-rss-import.phps
Please report all bugs to ady at romantika dot name.
Problems Encountered By Users
- Error 502
Warning: fopen(http://xxxxxxx.blogspot.com
/feeds/xxxxxxxxx /comments/default) [ function.fopen]: failed to open stream: HTTP request failed! HTTP/1.0 502 Bad Gateway in /home/xxxxxxxxxxx/public_html/wp -content/plugins/new-blogger-import.php on line 143 This problem is usually caused by connection between the host (server) and Blogger being not stable. There’s nothing I can do about it, but you can try again. Many users succeed when trying again.
Extra
During testing, for your convenience do consider WordPress Suicide. You can use it now, compared to before as reported by David in this post. Don’t delete all tables, use these settings:
Update: Justin has announced an upgraded version to cater to WordPress 2.1. This is needed as a new table was introduced to WordPress 2.1
Images
Images are not imported to your WordPress blog, so if your images are hosted on Blogger, they will not be displayed to visitors because of the hotlink protection. Consider this plugin by Notion: Blogger Image Import.
Problems?
If you encounter any problems, you are welcome to email me or post a comment. Please take note however that I will need time to respond, and look at the problems. This code is in no way 100% free from bugs.
I recommend all questions include everything you know, up to the extent of the PHP version on the server, if you know. In any case please included these information as a minimum:
- Blogger URL
- Destination WP URL
It would be extra helpful to have a screenshot of the error message, or any particular area you are having problems with. Here’s a good software to capture screenshots called MwSnap.
In short, I need as much information as possible in order to give advice and help you troubleshoot the problem. I am no clairvoyant 🙂
Post changelog
- February 1, 2007 19:25 GMT+8
- Changed /%year%/%month%/%name%.html to /%year%/%monthnum%/%postname%.html (Thanks Stephen)
- February 23, 2007
- Added problems section
- Urgent Bugfix – permalinks with dash or underscore not captured. Any other characters used in blogger Id?
- February 26, 2007
- Upgraded to version 1.1 and changed name to Blogger RSS Import. I think the new name is more suitable, without the word “new” that confuses many people.
- A very important update to this version is the ability to extract more than 25 comments, where this problem was faced by John Doe (refer to comments). A revamp was done to the code to extract comments.
- Also added was the ability not to import comments, and skip cycles to minimize overlapping posts when re-importing.
- March 4, 2007
- Version 1.2 is released. Important bug fix – comments dates were incorrectly imported (only effects version 1.1). Thanks to John Bindel for reporting and noticing the problem in the code.
- March 5, 2007
- Version 1.2.1 is released due to some problems getting initial comments data (number of comments). I am sensing that Blogger is making changes. This plugin may be obsolete soon so if you want to use it, do it now.
- March 8, 2007
- I don’t know what I was thinking, with the phps version. Obviously it would not work as the web server will format the output to be pretty. I’ve provided a link to the text version.
Complete code changelog is available inside the plugin file itself.
Those of us who don’t use Blogger’s commenting system might benefit from a ‘skip Blogger comments’ option. This would speed things up and might prevent errors like the one described below.
I had much better luck today. Logging in at 8am UK time, when the USA is mostly asleep I was able to import two blogs (one 128 posts, the other 933) in one go very smoothly. Thanks.
With my third (and final blog of 954 posts) it went wrong. Here’s the error message:
Post 954 read from XML: Most powerful blondes… nothing for us non-blondes to worry about
Permalink captured: most-powerful-blondes-nothing-for-us
Warning: fopen(http://sndiaryofsorts.blogspot.com/feeds/116049062826995460/comments/default) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in …/wp-content/plugins/new-blogger-import.php on line 143
ERROR: [] Unable to extract comments from http://sndiaryofsorts.blogspot.com/feeds/116049062826995460/comments/default
I wonder if it takes a little time for Blogger to create the comment feeds and if that caused the error.
I am stupid: You need to make sure that all comment feed options are set to full (as well as post feeds).
As I don’t use the Blogger comments I didn’t think of it. Doh!
Finally there. Now to get the templates right!
So many thanks, once again.
It worked great thanks a lot.
After moving to a host, the import happened without any problem.
There where a few posts that did not go in the right category, but a few.
You can see the blog @
http://www.kaizenlog.com
You are awesome!!! Every other step has been like pulling teeth but this worked like a freakin’ charm. Thanks, thanks, thanks, thanks!!!1
this worked great!!! thanks so much!
@stephen: I think I will make sure that when one selects to have Haloscan import, the normal comment feeds will not be retrieved. I didn’t do this as I didn’t know – if you have Haloscan, do you have normal (Blogger) comments as well?
@ricardo: For the categories mystery, I don’t think it’s caused by the accented characters alone. I saw in one of the user’s blog, the word “Management” became 2 categories: “M” and “anagement”. I still feel bad eventhough this can be fixed by deleting one and renaming another.
Everyone else – well done, thanks for trying.
Hi Ady
Most people using Haloscan do so because they started blogging before Blogger introduced its own commenting system.
I think it would be unusual (and confusing) to use two commenting systems on the same blog (but then someone’s bound to have found an application for that).
And then there are some bloggers who don’t allow comments at all.
I’d probably make retrieving Blogger comments a standalone option as that would cover every eventuality.
(BTW: I was able to complete the import of Haloscan comments to my own blog without a hitch; still customising my new WP template though!)
Best & thanks again
Stephen
Thanks for some really slick plugins!
Cheers,
M