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.

5 Replies to “WordPress House Of Cards”

  1. Don’t blame WordPress for your inability to know what is in it. Let’s start with the easy problem…

    Widgets was deactivated because Widgets now exists in WP without a plugin. Hello? You get a fatal error and an unactivated plugin because if the plugin was activated your blog would be inaccessible. You’d blame WordPress for that too. At least WordPress gives you an escape route.

    Secondly, did you actually deactivate all your plugins before you blame WordPress for problems 1 and 2?

    Thirdly, are theme related problems WordPress’ fault? I mean, they are made by anyone… how is that WordPress’ problem?

    Fourthly, are you seriously complaining about plugins not working? Dude… again, not WordPress’ fault. Most plugins wouldn’t break if plugin authors wrote their plugins using WP API which maintains backwards compatibility no matter what version it is.

    Come on, man. You’re trying to start a war when it’s not WP fault. BTW, if you don’t install so many programs on your computer, upgrading Windows wouldn’t be so painful. I venture the guess the same thing about your WordPress install and plugins.

  2. Greetings Aaron,

    I’m aware of what is in WordPress. I’m not blaming “WordPress.” That’s one of my points, really, that there is no company to blame. With Movable Type, I could blame SixApart for problems, and I could get them fixed because I had paid them to do so.

    I understand that you are a WordPress evangelist. Perhaps you could suggest some real solutions to the real roblems that I encountered (and that countless others are sure to encounter). Like where to find great themes. Or how the average user is supposed to determine which themes work with which flavors of WordPress. Or why I couldn’t bulk moderate my comments. Or why comment notification just stopped working in the first place.

    When I upgrade any OS, it is smart enough to tell me which programs work and which do not. When I upgrade Firefox (also and open source project), it is smart enough to check which extensions are compatible and which are not. It’s not like I upgraded from WordPress 1.0 to WordPress 5.0. I went from 2.1 to 2.2.1. I’m a technical user and can deal with all of the upgrade headaches, but you average use cannot, I suspect. That’s a problem.

    Yes, I turned off all plugins before the upgrade and tested them all individually after the upgrade. To be clear, I am only complaining that the widget component of the JAW Popular Posts plugin no longer works. The plugin itself still works. As do all of the other plugins. So I could still get the Popular Posts sidebar that I want on my site. I’d just have to edit PHP files to do so, but that kind of defeats the purpose of having a plugin in the first place. This is not an obscure plugin.

    I would pay a company to fix these problems. Or for a commercial version of WordPress that didn’t have these problems in the first place.

    And my Windows upgrades haven’t been painful for years, but thanks for asking.

    Regards,
    Erik

  3. We build sites for users, over the psat year we have worked our way through the vagaries of the WordPress ugrade route. In part becasue our usres want it.

    I feel your pain.

    I would love to be able to buy into a product and service system where there is accountability and responsibility. WP2.2.1 has been for us the worst of the upgrades we faced. Billed as a maintenance upgrade it breaks stuff left right and centre.

    We are now reverting to an older version, one that works and is part of a series that works.

    It is always possible to argue that things are not ‘WordPress’ fault’ but given the ad-hoc hobbyist nature of the development, support and clustered activities when things go wrong in a real world way then one wishes for the benefits of a commercial enterprise. Perhpas one reason why Semiologic and some others are doing rather well in building their own ‘walled garden’. Offering somethingthat, by and large, works.

  4. Aaron, you are very harsh. I bet you floss your teeth each night and never drink too much. And you sound really geeky. However, if you don’t have a girlfriend at the moment I may be able to make myself available ;-)

Leave a Reply

Your email address will not be published. Required fields are marked *