My excuses for publishing this are to help others migrating from TypePad to WordPress and, after all, blogging is an increasingly important part of interpersonal communications.
Moving from TypePad to WordPress using a Windows client
I decided to move one of my blogs from a hosted TypePad account to WordPress running on a hosted server. I needed to go through the implementation process with Drupal, Movable Type or WordPress. Since I’d been hearing good things about WordPress and taking into account the fact I already had a user forum, discussion lists and a wiki for brainstormsw, Drupal seemed like overkill. I was also in a tearing hurry because Six Apart’s TypePad server was down.
The original address was brainstormsw.typepad.com. I could either go for a new domain or make the new blog part of an existing domain. I chose the latter. The new address is www.brainstormsw.com/weblog
I was aware of a few things I didn’t like about the existing blog, so I figured I’d sort them out as I went along, but my aim was speed. The actual transfer of blog content was a matter of minutes. But that was the easy bit.
Things to change: introduce a better search, simplify the permalinks, implement Technorati tags throughout and remove the ‘all’ category, which seemed fairly pointless. (At the time I created the blog, I was unaware of the Main link on sub-pages.)
I had the new blog up and running in less than four hours with all the old content. All the pictures were fine (because they were pointing at the old links) but the internal links to other posts were also pointing at the old blog. Clearly some work needed there.
I made a few notes as I went through. Sometimes other people’s notes are better so I’ve linked to them.
PS Don't forget that regular backups need to be made - either by you, or your host
It can be done in five minutes. It really is the easy bit. As long as you know the access details for your server...
Follow the instructions in the readme.html file that is in the root folder of the WordPress installation set.
Getting posts out of TypePad
Export posts from TypePad to import.txt. (Log in to TypePad, click on the weblog link, in the Manage sub-menu on the Weblog Editing Shortcuts, there’s an import/export option.) Right click the export link at the foot of the page and save the file as import.txt.
[At this point I could have moved to WordPress and imported straight away. Foolishly, I went into the files section of TypePad and copied all the files (images mainly) that I thought I’d need later. Even more foolishly, I retained the directory structure of TypePad. This was unnecessary too.]
I grabbed stuff from typelists that might prove useful on the new blog - eg the creative commons licence stuff.
Importing the posts to WordPress
The WordPress import tutorial was fine. It related to MovableType import, but the TypePad format is identical.
The blog appearance
I went for minimal changes to the Kubrick default theme
The files for this are found in wp-content/themes/default
I edited the style.css file so posts and comments ranged left rather than being justified. Open it in a text editor (like TextPad or NotePad). I changed one element in the .post and .commentlist sections:
text-align: justify; becomes text-align: left;
I changed a line in the archive.php file to display ‘the_content’ instead of ‘the_excerpt’.
<?php the_excerpt() ?> becomes <?php the_content() ?>
I installed an excellent tagging plugin from Christine Davis at www.neato.co.nz. It is called Ultimate Tag Warrior 2.8.9. Ignore the other two that show up in your plugins. It makes adding Technorati tags to your posts a piece of cake. (If you've changed the blog URI, don't forget to claim it in Technorati.)
I tried adding Tag Warrior’s tag cloud but it was too biased towards ‘BrainStorm’ and ‘BrainStorm models’ which is unfortunate, but not surprising since I publish that particular software.
I tried adding a drop down category list but it didn't look good. I thought it could sit above the cloud and drop down over it. In the end, I junked the cloud and kept the default category list.
I didn't like the fact that to get Home you had to click the blog title. This was not intuitive. Well, not to me, anyway. So I added a blue HOME link to appear on all but the home page. I popped a tiny bit of extra code near the top of the sidebar.php page just under the 'author information' section which ends in -->
(If you have enabled the author information section, you might prefer to put this code above it, just under the <ul>.)
if ( !is_home())
! means NOT and is_home, when TRUE, means you’re at the home page. So if not true then display HOME. The other stuff is php control characters.
I edited the sidebar presentation sequence by moving the various elements up and down the list in sidebar.php. Each element begins with <li> and ends with </li>.
There’s a good tutorial on creating a style from scratch - you can learn a lot about how the various php pages are structured and how to fiddle about with them. Part one of four is here:
Hat tip to Neville Hobson for that one
The default search is brilliant, and turned out so useful for what followed.
Still in the sidebar, I removed a link in the Meta section and added a couple of new ones of my own. I haven’t yet done anything about a ‘blogroll’ or ‘recent comments’. As I said earlier, this was about getting the show on the road.
I added the Creative Commons logo and link at the foot of the page, under the </ul>
One last thing, to save users getting lost when looking at single posts, I added a sidebar to this view. At the end of single.php, just after the </div> statement, I added this line:
<?php get_sidebar(); ?>
Another very useful plugin (if you use FeeedBurner) is FeedBurner Feed Replacement plugin from Steve Smith. Pick it up here:
I connected my new blog to Feedburner and redirected Feedburner to the blog. This means I have not lost any of my subscribers. They’ll just find themselves on the new blog.
Update 22 Dec: I added an explicit RSS Feed link at the top of the sidebar:
<a href="http://feeds.feedburner.com/..my blog../"><img src="..my RSS icon.." > RSS Feed</a>
You'd need to put in your own substitutes for ..myblog.. and ..my RSS icon..
The last, and most tedious, task was to change all the internal links away from Typepad. References to files (images usually) and other posts. I moved the files as they were needed to their new home. Images to wp-images, most other files went to the main BrainStorm website.
It took a while and we’re only talking about 115 or so posts. A friend who was doing the same thing just a few hours behind me, decided not to bother with repairing internal links. The difference is that he is news focused whereas I’m building a body of useful information.
While I was trundling through I also added the tags for Technorati and tidied up the categorization. If you delete a category, WordPress warns you that anything in that category will acquire a check in the ‘uncategorized’ box. The daft thing about that is that it can’t be true if other categories are selected. (Either I missed something or the software could do with a slight tweak.) I spent quite a while unchecking the uncategorized boxes.
I also checked the posts themselves and updated them if necessary.
When I was well on the way through the work, I decided to see how many TypePad links were left. I exported the posts table from mySQL as a CSV file, opened it in Excel and then searched for brainstormsw.typepad.com. With ‘Find all’ and you get all the hits in a single list. It’s easy to sort things out from there. And here’s how:
- Have two browser tabs/windows open
- In Excel, grab a piece of unique text from a found entry
- Use it in the WordPress blog search
- Click Edit on the found entry
- Find the old typepad.com address
- Assuming it’s a link to a blog post, use the second browser window to find the permalinked entry using search or the month index
- Right click the post title and choose ‘Copy link location’
- Replace the typepad.com permalink in the new blog by pasting
- Click on save
I think that's it. I can't guarantee that I've caught every last detail. But hopefully it's enough to get you going.
Update: I blogged a few addition observations on January 15 2006.