Over the weekend, a small group of people on twitter got the see a preview of the new WPMUtutorials redesign. The new theme (if you pop on in from RSS) is from Elegant Themes, a premium theme club. I happened to win a free year’s membership in a contest over at WP Zoom, and I have to thank both Pavel and Nick again.
Not only has the design changed, I took the opportunity to revamp the site and move the contents over to a WordPressMU install. We’ve set up a private (closed registration) site of our own on a smaller scale; to use as a development site, to host some smaller client sites, and to host our own individual blogs. Given we had at least 5 separate WordPress installs to take care of, it makes sense. Ron already moved his personal blog over to this WPMU install a few months back. The added bonus to that is we can now clean up some web accounts on the server too.
As a brief overview, the steps for moving things over was pretty straightforward. I had set up a working blog at wpmututes.ourhostingdomain.com (not a real domain 😉 ), uploaded the new theme, and started making my tweaks to it. The biggest thing I did was add a chunky widgetized footer. You can do the same using the linked tutorial from Leland at Theme Lab. Mostly I wanted to make sure everything looked the way I wanted it to, including changing the site name graphic in the header.
I’m completely skipping over the fact that I spent a good four hours in just *choosing* the theme I wanted to reflect the site. I do have a theme design specially made for me in PSD format, but I’m only halfway through coding it, hit a snag, and figured I’d just better go ahead with another theme and save that design for another time. (it’s gorgeous: it will see the light of day at some point, but maybe on my personal blog.)
The next thing I did was import my data into the working blog. I know we all harp on the forums that the safest way to do this is via a database transfer using this handy tutorial. I wanted to double-check everything, so this time I went for upgrading the old site first so that each install was the same version. I then used the Export on the old site and the Import here on the working blog. And what do you know? It worked. I was as surprised as anyone. My official suggestion now is to try the Export/Import method if you have a small number of posts & authors. If it works; great. If not, use the database method. How to Import a single WordPress blog into WordPressMU with phpmyadmin.
Now that I had the data imported, I had a few extra things to tweak. My page titles were too long for the header, and there were too many of them. I shortened a couple of titles and widened the div container. I also rearranged it so the least popular page dropped off. (Bonus points if you can remember what it was.)
My categories were overspilling the menu bar as well. I moved some categories to be child categories for suitable parents and that fixed that. There’s a lovely drop-down on the nav bar for the sub-categories.
The theme I’m using has a great options page for deciding content placement and I went with the more popular – and hopefully easier to navigate – magazine-style front page. Since category ID numbers wind up slightly different in MU, I had to go re-check what they were on the MU system and not the originating site. Another good reason to have these things in an option page and not hardcoded in the theme’s files.
I also had to set up some of my widgets all over again, as an import doesn’t get that. It doesn’t get the list of activated plugins either. Luckily, since I had a working copy and a live site, I could work with both sites open in multiple tabs and copy / paste a lot of information. And since the sites live on the same server, I copied over the plugin files from one web account to the other via ssh. It took about a half hour to an hour to test the plugins on the new site and make sure they all worked properly.
One isn’t working as expected, so the related posts area built in the theme is showing no results until I fix it.
After checking everything, I decided to to the domain switch. It doesn’t matter really what order you do it in, but in my case I knew I was done on the working/new blog for a bit, so I domain mapped it to its new domain: same as the old site domain. 😀
I then logged in to my domain registrar (goDaddy) changed the nameservers back to the Godaddy parked ones, and added an A record pointing to the IP of my WPMU install. I’ve already got the server set up to handle any domain that comes in and direct it appropriately. I checked to make sure the TTL value of the domain records was down as low as possible, and in just over a half-hour the domain was now pointing at the new install. Yay!
For client sites with as little down time as possible, I do the DNS records first, then domain map it.
It was a good dry run to ask on twitter, as a few people immediately found a couple of issues. Since I imported on the working domain, all image links within the posts themselves were pointing to the now non-existent subdomain. Gotta love absolute links on upload. The files were still on the server, just under the wrong name. There were only a few images, so I edited the posts directly. For a lot, you can do a find and replace via SQL right on the database.
Another thing I missed was the initial “hello world!” post from when I created the working blog and the default uncategorized category. I still have to tweak that as I messed up renaming it. I had initially decided to just delete a category with a small number of posts, hopefully moving those posts to the default category, and then renaming the default to the category I deleted. That didn’t work, so I’ll have to go digging, as well as find those posts. It’s also the reason there’s an “installation2” category. 🙂 What can I say? It’s a nice weekend outside and very distracting.
Otherwise, I have a short list of boring details to take care of, like handle my google analytics via plugin instead of in the theme file, and without interfering with other sites on the same install, as well as move over the links. If you see anything else wonky that I haven’t mentioned above, feel free to let me know. I absolutely did not check how it looked in IE, especially IE6, since my stats show that very few of my readers use it.