How We Moved Thomas Hawk to WordPress


It’s been about a week and I haven’t said a whole lot about one of the most special projects I’ve ever worked on. Thomas Hawk has been one of the people I’ve most looked up to since I began shooting photography. I’ve never met the guy before, but I hope to at some point. I also keep my eyes and ears open to absorb anything and everything he ever says about photography in a hope that I will learn from him. Mentor from a far? Maybe.

A few weeks ago, a comment was made on Friendfeed (I don’t remember how it started) and it became clear to me that Thomas desperately wanted to get off of the Blogger blog platform. I can’t blame him. I’m always looking to help people move to WordPress so I asked him to contact me. As a veteran of “moving people to WordPress”, I was sure I could help him out.
picture-2
We exchanged emails over the subject and his biggest hurdle seemed to be the number of comments that were housed on Blogger. He was concerned, naturally, that all of his content would not be able to come over. I asked him to give me a shot at it and he obliged.

Blogger Problems

As I’ve mentioned, Blogger can be a bit of a pain. While it used to be the great granddaddy of blogging software, Google has done little to keep it nimble and competent. That, I hope, will change in the months ahead as my friend and colleague, Rick Klau, formerly of FeedBurner has taken the reins as the product manager and has been incredibly helpful working with me on this project.

The problem was a pretty common problem. It didn’t take long Googling around to find hundreds of other people who were having problems with Google having a 5000 comment cap on their export. In other words, if you had over 5000 comments (Thomas had over 21000), you were screwed and could not get all of your data.

I went to Rick and asked if he could help me get this problem solved. He happily obliged, asked me to wait a few days, and went off to his team. Within a few days they had solved the problem. Not only for me, they solved it for everyone.

WordPress Problems

For an unknown reason, though, the WordPress Blogger Importer did not work the way it was supposed to. Though it now accurately reported that there were over 21,000 comments that could be imported, it failed to do so. As a result, I was forced to improvise using the Blogger-supported format for data portability – a super large Atom-format XML export that included all the data I needed. Unfortunately, importing this data was now impossible in its present form unless I decided to build a WordPress import script for the occasion. Instead, I discovered the Google provided Blog Converters, open source scripts that could convert WordPress or Movable Type exports into Blogger Atom formats and vica versa. With this tool in hand, I was able to successfully convert the Blogger Atom file into a WordPress native WXR file.

Importing the new file was a breeze but created a new problem. I needed to maintain all of Thomas’ permalinks for the search engines. Blogger has a strange way of creating permalinks that involves breaking the title of the post into “word chunks” then piecing together a permalink out of a seemingly random number of words. In WordPress, permalinks are generated by taking all the words in a title, and piecing them all together to make a link. So I needed to find a way to preserve all of this.

I found the Maintain Blogger Permalinks plugin, a single use plugin that would alter the post slugs to the previously used Blogger slugs. Unfortunately, it relied on content that was pulled directly out of Blogger, on import, using the Blogger import script. Since I had gone around that by using the Blogger export format, I had to figure out how to get that data. Fortunately, it was as simple as actually running the Blogger importer. Since the importer only did not work with comments, all I had to do was make some simple PHP changes to the script in order to make it not skip over already existing content, and instead update that content with the appropriate data I needed.

I could outline those details, but that is special sauce. I’m happy for you to pay me to do this for you. ;-)

WordPress Perks

Once all the data had been moved over and Thomas had blessed the “flipping of the switch”, we kicked it on live. All the permalinks still worked. All the data was successfully moved into its new home. Comments were good. Posts were good. We had a nice minimalistic theme that brightened up his digs. I used the Picturegrid plugin to pull in his Flickr photostream.

We, of course, encountered some problems involving caching. WordPress still doesn’t do well on high traffic sites without some caching. I implemented WP-Super Cache, an absolutely essential plugin for high traffic sites.

I am Available

This was a special project for me as Thomas is someone I look up to. At the same time, it’s what I do. It’s how I make a living. And it’s how I am able to continue keeping this site going. Contrary to popular belief, it is not sustained by advertising.

In the next few days, I will face the darkest time of my life so far. At this time, I have exactly one week to extend my pipeline with additional work, find viable employment elsewhere or simply… I don’t know. I don’t want to think about it. The economy sucks right now, and I’m in the middle of it. Though I know everyone is tight and hiring is frozen, there is still some liquidity available. I am asking, even begging, that if I can help you with WordPress (or any) consulting work – even short term – that you let me know. I hesitate to strike this tone, yet I am in in dire straits right now and need a breakthrough.

If you work for a company, go lobby for them to employ my services. If you are a CEO, I ask you to consider if you could try to get me for a discount. If you are an entrepreneur, I ask you to consider if you are able to pass me projects that are filling your plate. I have put up a consulting page to provide an overview of some of the services I have done and can do for you.

Thank you all, and thanks Thomas for letting me work on your site. It was great fun.