WordPress 2.1 Blogroll Nightmare and Lessons Learned

[ Image: Nightmarish Rotting Corpse Head ] Here at Perishable Press, we like to stay current by running the latest version of WordPress. The site launched in 2005 with WordPress 1.5 (Strayhorn), eventually made the jump to version 2.0 (Duke), recently stepped up to 2.0.1 (Still Duke), and currently enjoys 2.0.5 (Ronan). Although each of these upgrades have required various file edits, plugin tweaks, and theme modifications, the process is always educational and remains an important aspect of this site. Much of our content revolves around using and customizing WordPress, and so staying current with new versions is critical if we are to continue operating as a relevant, contemporary resource.

Needless to say, with the release of WordPress 2.1 (Ella) in January of 2007, we were excited about upgrading. In fact, we were so enthusiastic about diving into ‘Ella’ that we went ahead and upgraded only hours after its release (mistake #1). I recall thinking something to the effect of “..every other WordPress upgrade has gone so well..” and, after skimming over the list of changes, “Wow, look at all that WordPress goodness — surely this will be a fantastic upgrade!” (mistake #2). As if that weren’t enough, by not waiting a few days before jumping aboard, it was impossible to follow the sage advice of “Google first, upgrade second” (mistake #3).

What we had not realized before upgrading involved the new manner in which WordPress handles the Blogroll. For all versions of WordPress prior to 2.1, the Blogroll consists of a user-defined set of links that functions independently, completely separate and apart from, say, category links. In fact, in its explicitly defined role as an external link library, the pre-2.1 WordPress Blogroll inspired me to use it as a dedicated bookmark manager, categorically customized to organize my entire collection of Firefox Bookmarks. Indeed, the Blogroll functioned so well in this capacity that I eventually transferred my entire set of Bookmarks — over 700 links!

For those of you now-familiar with new WordPress’ handling of the Blogroll, the impending disaster is all too clear. You see, for some reason, the brainiacs responsible for WordPress 2.1 thought it would be a good idea to modify Blogroll links to function as Category links. Madness, I know, but according to several sources, it all makes perfect sense. For me, however, the change turned out to be a total nightmare. After upgrading to WordPress 2.1 there were over 700 links displayed for every list of category links. And, as the site runs over thirteen different themes, the number of broken layouts was innumerable. It was total insanity, to say the least..

Aaron Brazell of Technosailor elaborates on the new Blogroll functionality:

…In previous versions of WordPress, links and categories were handled as two separate entities. Links were seen as a thing used solely to power a blogroll and Categories were seen as a way to solely compartmentalize posts. In WordPress 2.1, the development philosophy shifted in such a way to recognize that these things actually tend to serve nearly similar purposes. While those philosophies can be discussed in other posts, the important thing to recognize is that the Categories table is now prepopulated with a Blogroll category and all links are assigned, by default, to the blogroll category. Folks who are upgrading will have this association made as part of the upgrade process.

Thank you, Aaron. So nice to know that my Blogroll nightmare was simply a “shift” in developmental philosophy. Nonetheless, immediately after performing the live WordPress-2.1 upgrade (mistake #4), time was short and restoration was critical. Users would simply not understand what they were seeing if they happened to drop in during the chaos. Everything was busted, the site was unrecognizable, unusable, and downright scary looking. Plus, the last thing I wanted was to have good ‘ol Googlebot stroll into town while displaying over 700 external links on every page! Can you say “bye bye, pagerank?” Trust me, getting banned from Google for sporting a massive link farm was not my intention when I decided to upgrade WordPress to 2.1. Sheesh.

Eventually, after restoring Perishable Press to its orignal, properly functioning state via rollback to WordPress 2.0.5, my situation became all too clear. The new Blogroll functionality of WordPress 2.1 (and most likely all successive versions) forces users to reconsider its usefulness and long-term flexibility as a bookmark manager of any capacity. Sure, for users with only a handful of links in their Blogroll, this is a non-issue; simply omit them via <?php wp_list_categories('exclude=1,2,3'); ?> and problem solved. However, for those of us employing the Blogroll for serious link management, the process of editing tags and altering layouts while sorting through endless link categories is not an efficient option. Plus, who’s to say that the WP heads won’t change the Blogroll again in a future version? What then? Another nightmare? More editing, reorganizing, and tweaking? Who needs it!

Clearly, using the new WordPress Blogroll for serious bookmarking is out of the question. Thus the issue is forced: what to do with the library of links currently populating the Blogroll database? Ultimately I am left with two options: 1) transfer the entire collection to another bookmarking system (such as Firefox or del.icio.us) or 2) keep the bookmarks in place and never upgrade WordPress again. Needless to say, the second option isn’t very appealing. As discussed, it is important for this site to stay current with WordPress, regardless of pain. Thus, with only one way forward, I have decided to relocate my entire link library to my del.icio.us account. In our next article, we will discuss the process of importing the WordPress Blogroll to del.icio.us. Stay tuned..

Lessons Learned from the WordPress 2.1 Blogroll Disaster

Upgrading WordPress is always an educational experience. Even at its worst, WordPress is still the best. Even so, here are the key lessons learned during our initial WordPress-2.1 upgrade attempt:

Always back up your data, especially before making changes
This includes everything from your database to theme files. Indeed, because of this step, we were able to quickly restore the site with absolutely zero data loss. You can never be reminded too many times: always back up your data!
Mistake #1: Whenever possible, don’t be the first to upgrade
Sure, new software is a gas, but crashing your system is not. If I would have waited awhile for the first few WP-2.1 reports to roll out, a great deal of stress could have been avoided.
Mistake #2: Always read the documentation before upgrading
Never assume anything! Just because previous upgrades went smoothly does not mean that the next one won’t be a total nightmare. Always read the documentation first.
Mistake #3: Google first, upgrade second!
Whenever possible, google a few keywords to see if anything useful pops up. For example, assuming we had waited a few days before upgrading, we could have leaned quite a bit with a simple search: WordPress 2.1 Blogroll. Duh.
Mistake #4: Whenever possible, never upgrade on a live site
This is especially the case when upgrading your blog platform, database, or any other potentially devastating aspect. A simple maintenance page such as “Site update in progress – be right back” would have eliminated the panic factor and circumvented Googlebot from potentially destroying us..