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.
Hi,
I love the import plugin. I was able to import all of my posts right away into WordPress… however I have a problem with the number of comments it is bringing over. Namely, that it limits every single post to 25 comments. If I have 50, it brings 25. If I have 32, it brings 25.
I have since used the suicide several times, but I thought I remembered that the first time I used it, it had more than 25, but maybe it’s my imagination playing tricks on me. I have checked all of my Blogger settings for feed (all set to all as described), and I have checked the “archiving page” that has create post pages to yes as well. I have also retried this about 10 times… all with the same result.
I would be very much indebted to you if you might see if you are having the same problems.
My old blog: http://www.socalbubble.blogspot.com
My new (test) blog: http://www.socalbubble.com/wptestblog/
Also, any one know how to perform forwarding for my blogger pages to maintain my history links?
Thanks all,
John Doe
@Stephen: Well done! I am sorry I didn’t have the time to provide skipping though.
@mari: 🙂 Thanks for using the plugin.
@John Doe: Urgh.. I guess I didn’t think about the number of comments in a particular post!!! Maybe there’s a limit to it as well. This is the first time a user reported this, so you must have a very popular blog. I will try… I will try… (x 1000) to find time to look at it.
Ady,
You’re the best!
Yes, many of my “bubble blogger” cohort have quite a few comments… it sparks debate to say the least. I have seen threads with more than 1000 comments, and not a single one spam!
I would really like to see this work, so good luck. It’s greek to me.
John Doe
Works like an absolute DREAM!
Thanks so much for writing this.
Ady, judging from the comments you’ve definitely written a popular tool—and you’ve beat the WP developers to the ball to boot!
I used it a few nights ago to import a Blogger link blog with 3322 posts! I decided to import it to a local database where I could increase the memory and execution time settings in php.ini (there was no way I was going to click next and wait 80 seconds 32 times, ha).
Overall I think it took about an hour to run. I’m wondering what the essential bottleneck is (I didn’t have a chance to look into your code much—but it seems to use the same mechanism as the Haloscan importer). Perhaps it’s just the time for Blogger to produce a feed with 3000 entries?
Anyway, once I ran my Haloscan import script (which I really should package as a plugin, it’s based on the old WP 1.5-style importers) it worked like a charm with your ‘Haloscan import’ option. What a treat!
@jeff: well done. I am glad it worked for you.
@Justin: Great! Well, the developers made use of the Google API, which IMHO is the better (and proper) way to do it.
The main bottleneck is the need to do multiple GET requests for the feed. From my analysis months ago, the feeds only allow a max of 100 posts to be retrieved. This means that we have to get the feeds over and over again. I think the same problem is there with comments, as John Doe (above) had only 25 comments imported per post. I didn’t think of that earlier.
Well, your explanation on the Haloscan importer script was clear, so I just included the post ID 🙂
Thanks ady — worked like a charm.
Hi Ady,
The import worked like a charm. Thanks for all your work on this.
John
You sir are a scholar and a gentleman. Imported over 1000 posts without a problem! Thanks again.