* WordPress House Of Cards

If you change one thing, then you might break ten other things.

I like WordPress. But I don’t love it. I liked Movable Type. Not as much as I like WordPress, but Movable Type has one thing going for it that WordPress lacks: a company. If something broke in Movable Type, I could (theoretically) get a solution from SixApart, the company behind Movable Type. WordPress is an open source project, so if it breaks, who do I call? WordPress is a better product, but Movable Type is a better supported product.

You may have noticed a new look here at my blog. That was out of necessity. Here’s how the WordPress house of cards came crashing down for me recently.

Problem 1: WordPress stopped sending notifications of comments requiring approval.

Solution 1: Who knows. I don’t even know when this problem started, but it turns out that I had a gazillion comments queued up for approval and didn’t know about it. Yes, I could login and check the comments queue manually, but that’s what notifications are for. Mmm-kay? In the world of Web 2.0, users expect active notification, either by email or feeds. Logging in to check anything is so yesterday.

Problem 2: WordPress failed to bulk moderate my queued comments. I got this lovely error message:

Unknown column ‘pingback_views’ in ‘field list’ on line: 532

I don’t know who put that unknown column there, but it wasn’t me. And on line 532 to boot! Some nerve. Googling that error message suggested that maybe my MySQL tables had become corrupted. The tables were probably boozing it up and watching too much MTV.

Solution 2: Upgrade to WordPress 2.2.1. I didn’t know if my tables were corrupted. Didn’t care to spend the time to find out. But I figured that upgrading might help. I was aware of some of the security issues with WordPress. I had been putting off “simply” upgrading from WordPress 2.1 (which I’d just installed in January) to WordPress 2.2.1. I knew it would “simply” not be simple. It wasn’t.

Problem 3: After upgrading to WordPress 2.2.1, my Tiga theme broke. I had been using Tiga 1.0.1 by Shamsul Azhar, but after upgrading, I got this error in the left menu on the home page:

WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” at line 1]
SELECT cat_id, cat_name FROM

Notice how the software is trying to blame me. I would say the software has the problem. Get counseling, software. You are in denial.

Solution 3: Get a new theme. In an earlier life, I did quality assurance on both hardware and software (at BBN, if you’re curious). Whenever the hardware engineers changed the hardware and broke the system, they suspected bad software. Whenever the the software engineers changed the software and broke the system, they suspected bad hardware. I learned if you broke a system that was working before you touched it, then whatever you changed last is what caused the system to break. Software engineers broke software, hardware engineers broke hardware.

To recap, WordPress 2.2.1 worked fine with the default theme, but it did not work fine with Tiga. Time to change themes.

WordPress comes with a default theme, which is OK. But blogs are meant to be personalized. Kind of like “personal” computers. Which is why there are lots of third-party themes. Lots of plugins. Lots of widgets. Customize WordPress to your heart’s content. Just don’t expect anyone else to keep track of which stuff works with which other stuff. With any upgrade, you can be almost certain that something will break.

Incidentally, this is why I only run Windows Update once per year. I’ve been using this approach for a couple of years. And it has made me hate Windows less. Turns out that most Windows problems are self-inflicted.

Patient: “Doctor, doctor, it hurts when I upgrade Windows!”
Doctor: “Don’t upgrade Windows.”

Problem 4: It’s hard to find a great theme. I liked Tiga because it was a widget-ready 3-column theme with fluid columns (i.e. columns that change width as the browser window changes width – as opposed to fixed-width columns). Do you think you can search for a theme with these features on the WordPress themes page? You cannot. And don’t even think of trying to find themes that work with WordPress 2.2.1.

Solution 4: Buy a commercial WordPress theme. I don’t use WordPress because it’s free. I use it because it is good software. I prefer to use the best software for the job, regardless of its license. I would prefer paying for WordPress from a real company so that I can get support. For the same reason, I thought I’d try to buy a commercial theme. Surely the commercial sites selling WordPress themes would be better organized than the main WordPress website.

Problem 5: Commercial WordPress theme vendors couldn’t organize their way out of a paper bag. And stop calling me Shirley. Which is to say, all of the WordPress theme sites that I checked out stink. They appear to offer pretty themes, but will these themes work with WordPress 2.2.1? Do they have 3 columns? Are the columns fluid? Can I get support? I also love the fact that free theme vendors show up for my search that includes the “-free” keyword. Par for the course.

Solution 5: Go back to the WordPress theme site and try out themes one by one. I ended up with a theme called Anaconda by Simple Thoughts. (If you guessed that that the WordPress themes page is organized alphabetically, you’d be correct. See how far I got?) It’s actually Anaconda Beta 0.7. It’s not perfect, but it mostly works. And I didn’t pay for it, so I’m not supposed to complain. But I did at least try to purchase a theme. Then I could complain with a clear conscience.

Problem 6: The new theme has theme-specific settings. I need theme-specific settings like I need another hole in my head. Now I have to figure out what settings I want for Livesearch, AJAX commenting, and Asides (among other options). I don’t know much about “Asides” other than it appears to render category pages with the full text of each article (as opposed to summaries). In other words, the way that I want all of my category pages to be. The way they used to be in Tiga. Fortunately, I get to choose one category (lucky me) to be rendered with Asides. The rest of my category pages are in “normal” mode (i.e. broken summary pages).

Solution 6: There is no solution. Other than to go back and choose a different theme. See how fun upgrading is?

Problem 7: Enabling the FeedBurner FeedFlare un-plugin.

Solution 7: Just deal with it. You’re going to have to edit some PHP files. I like FeedBurner’s FeedFlare feature, which adds bells and whistles to the end of each of my posts in my feed. FeedFlare can also be added to posts on your website site, but this involves “simply” adding some code to your PHP templates. It seems to me that this should be a plugin. You shouldn’t have to edit PHP files to enable something like FeedFlare. FeedFlare is not really a plugin. It’s an un-plugin.

And FeedBurner’s instruction for adding FeedFlare are written for the default WordPress template. Maybe I should just stop customizing my software. Or go back to DOS. Or something.

To add FeedFlare to WordPress 2.1 using the Tiga 1.0.1 theme, put your JavaScript code snippet above the <div class="post-metadata"> line in [wordpress-home]/wp/wp-content/themes/tiga-06/index.php and above the <div class="single-post-metadata"> line in [wordpress-home]/wp/wp-content/themes/tiga-06/single.php

To add FeedFlare to WordPress 2.2.1 using the Anaconda Beta 0.7 theme, put your JavaScript code snippet above the second instance of the <div class="itemtext"> line in [wordpress-home]/wp/wp-content/anaconda/theloop.php (at line 117).

Adding FeedFlare is so easy, I don’t know why everybody doesn’t do it.

Problem 8: After upgrading to WordPress 2.2.1, I could not activate the Sidebar Widgets plugin. Got this error:

Plugin could not be activated because it triggered a fatal error.

At least the software is not blaming me for its problems.

Solution 8: Upgrade Sidebar Widgets from 1.0.20060711 to 1.2.1.20070210b.

Problem 9: See Problem 8. Sidebar Widgets plugin still cannot be enabled.

Solution 9: RTFM. There’s a manual? Not really. But it turns out that the widgets functionality, which was previously provided by the Sidebar Widget plugin, is now included in the core code of WordPress 2.2. Silly me.

Problem 10: Except now the JAW Popular Posts widget is busted. This is a known problem. So I know which pages are the most popular. I just can’t tell you.

Solution 10: There is no solution. Unless you want to add plugin-specific template tags (such as <?php akpc_most_popular(); ?>) for Popular Posts to your theme-specific template pages (i.e. just like the FeedFlare un-plugin installation). But remember to do this again if you change templates. Or upgrade WordPress. Or upgrade MySQL. Or upgrade PHP. Or inhale. Or exhale.

When searching for a solution to the Popular Posts problem, I found a WordPress user (with a problem with WordPress 2.2, database backups, and the WP-Cache plugin) who made these comments on the open source model:

“WordPress developers have to make upgrading painless. However, this raises an issue with open source software. The developer behind the wp-cache plugin ran out of steam and stopped development on the plugin a few months ago. As WordPress continues to develop, it requires changes in the wp-cache plugin and dozens of other plugins like it. Each plugin and theme must keep pace with the ever evolving, rapidly changing WordPress core.

That’s partly why it’s such a hassle to upgrade WordPress, because you never know what plugin or theme the new version is going to break. One solution is to minimize plugins and stick with mainstream themes. But if you take away plugins and theme variety, you might as well use one of the second-rate, boring blogging platforms.”

But I’ve got comment notifications arriving again, so that’s nice.