Tag Archives: themes

Pardon our dust –or– Netninja on Thesis

constructionAs you can tell by the ubiq­ui­tous ‘90s-era non­trans­par­ent ani­mated shov­eler graphic at right, Netninja.com has been under con­struc­tion this week­end. Everything looks fine now, but this is a warn­ing that there may still be some loose cov­er­plates hid­ing spark­ing wires. You see — today, I installed the Thesis theme engine for WordPress. What does this mean? For most folks, it means almost noth­ing. There is a slightly new look with a bit more spit-and-polish. Blog posts were shuf­fled to the /blog sub­di­rec­tory (http://netninja.com/blog/) and the website’s root (http://netninja.com/) serves as a bet­ter table of con­tents. Beyond that, lit­tle has changed.

“So, then, why’d you change?”

For this, we need to take a lit­tle his­tory les­son. Back when I started exper­i­ment­ing with WordPress in lieu of LiveJournal, about 3 years ago, I found a theme I liked. The term “steam­punk” was not in pop­u­lar use yet, but I liked the style and found a great free wood-and-brass WordPress theme. As WordPress matured over the years, releas­ing bet­ter ver­sions with more fea­tures and fancier user inter­faces, I dis­cov­ered the dirty secret of most free themes:

The major­ity of free themes are aban­don­ware, cre­ated once by a web designer for a one-off site or to expand her port­fo­lio and are never looked at again

As WordPress matured, the free theme that I was using did not. The fail­ure mode for this theme, and most oth­ers, was non-graceful. Each newly added fea­ture brought more quirky behav­ior from the theme. I finally aban­doned it, unable to find a suit­ably themed replace­ment, in favor of cre­at­ing my own. I started with the theme that came with WordPress and mucked around with its stylesheets using Firebug until I arrived at some­thing that looked rea­son­ably like the theme I had pre­vi­ously used.

This, too, worked great for a while. Then WordPress released a newer ver­sion with a newer base theme. As I recall, the biggest dif­fer­ence was with nested com­ments, but there were a sig­nif­i­cant num­ber of minor dif­fer­ences as well. I once again had to go through the exer­cise of migrat­ing my CSS changes from the old style to the lat­est. I had used that for a while and have been happy, but I now under­stand that ver­sion 2.9 is on the hori­zon and do not wish to repeat that exer­cise.

With that his­tory, I can now answer “why did you change to Thesis?” I run a num­ber of plu­g­ins on this site. Several of them have PayPal dona­tion links. I have even donated to a few of them. And yet, I see no themes with such dona­tion links and few (if any) free themes with an active, sup­port­ive, user­base. I have peeked at a num­ber of for-pay themes out there, but Thesis seemed the most robust and upgrad­ably hack­able (that is, hack­able with the least amount of effort each time WordPress and/or Thesis gets updated). Given the choice between spend­ing a lot of time fix­ing my theme each upgrade, not upgrad­ing, or shelling out some money for a pro­fes­sional theme, I chose the pro­fes­sional theme.

P.S. I know a lot of peo­ple hype the SEO aspects of Thesis. I appre­ci­ate that out of the box Thesis does its due dili­gence like putting the post key­words in the HTML key­word meta tag (some­thing that the default WordPress theme, sur­pris­ingly, does not do). However, I am not an SEO nut and am not excited by all the SEO options attached to each post.

P.P.S. One of the most vocal Thesis sup­port­ers in the PDX com­mu­nity is Aaron Hockley of Social Photo Talk. I am not a pho­tog­ra­pher, but I have fol­lowed his posts on Social Photo Talk because many of them make good blog­ging sense for non-photographers. If you click over to that blog and get Thesis through his yel­low affiliate-link ban­ner over there, I’m sure it will make him happy.

The psychology of WordPress upgrades & plugins

WordCamp Portland was last month. Although WordPress 2.8 has made upgrad­ing one-click easy, there was a lot of shared sen­ti­ment about upgrades and plu­g­ins. These beliefs boil down into two groups and are sum­ma­rized with the fol­low­ing state­ments:

  • I don’t run WordPress with any plu­g­ins what­so­ever because an upgrade to the core of WordPress could break a plu­gin and mess up my site.”
  • I don’t upgrade WordPress because I am not sure which plu­g­ins will break.” This includes the unspo­ken corol­lary that the site is left vul­ner­a­ble to attack if any given upgrade is security-related.

I do not know what other folks are using plu­g­ins for, but on my site, they are grouped into “must-haves” and “fluff.” If any of the must-have plu­g­ins break, the upgrade is a deal-breaker. I won’t do it. If any of the fluff breaks, I could prob­a­bly deal with it. I would not be happy, and would anx­iously be await­ing an upgrade to the bro­ken plu­gin (or research­ing alter­na­tives that do work), but the site would not be down. The trick is to run very few must-have plu­g­ins and make sure they are from reli­able sources that seem to have enough devel­op­ment resources to test against betas and upgrades. That last bit is a tough call for a new­bie — how do you gauge a source’s reli­a­bil­ity? — but it becomes eas­ier with time and expe­ri­ence.

To demon­strate this, let me share with you my must-haves as well as the col­lec­tion of every­thing else. You will see that there are really only two plu­g­ins that, if bro­ken, would badly mess up my site. Those plu­g­ins come from, what seems like to me, trust­wor­thy, reli­able, hard-working sources — sources that would not be a let-down dur­ing big upgrades.

My Must-Haves

These are the must-have plu­g­ins I am run­ning on my site. Your list may vary.

  • Akismet — This is the canon­i­cal spam blocker.
  • OpenID — This allows me to log into other sites using my Netninja login.

Basically, my site (and my access to other sites) would not be func­tion­ing opti­mally with­out either of these two plu­g­ins. I am not wor­ried about Akismet break­ing in an upgrade because the pub­lisher is WordPress. I am also not wor­ried about the OpenID plu­gin break­ing dur­ing an upgrade because it seems to have an active devel­oper com­mu­nity behind it. There are fre­quent bug­fixes and fea­ture enhance­ments, such that I feel they are keep­ing on top of the WordPress 2.9 beta test­ing.

My Must-Haves With Workarounds

These would have gone in the must-have group, but they auto­mate tasks that I am con­fi­dent enough in my skills to man­u­ally per­form, if needed. Of course, I would pre­fer the auto­mated way.

  • Bad Behavior — Another spam blocker. This one is less WordPress-specific and is just a WordPress-plugin-wrapper around a more generic spam-bot catcher. If I had to, I could just fall back to using only Akismet.
  • Maintenance Mode — This plu­gin shows a nice lit­tle mes­sage stat­ing that the site is down for main­te­nance. Previous to this, I would man­u­ally tweak the .htac­cess file to enable HTTP-auth pass­word secu­rity, with the mes­sage “down for main­te­nance,” but this plu­gin is more clean.
  • Twitter Tools — New posts get tweeted. I could always do this man­u­ally or not at all.
  • WP Super Cache — I do not expect to get Slashdotted or Dugg-effected any time soon, but if I did, I can always fall back to the good ol’ .htac­cess redi­rect to a sta­tic file rou­tine. A bit of a pain, yes, but do-able. If you run a higher-traffic site than I, you would prob­a­bly want this in the above sec­tion.


Everything in this sec­tion is icing on the cake. It is UI fluff that makes me happy, but does not func­tion­ally effect the site.

  • After The Deadline — This plu­gin checks spelling and gram­mar. Firefox itself has an inte­grated spellchecker, and I often find my gram­mar is okay.
  • Breadcrumb — This pro­vides a nav­i­ga­tional set of bread­crumbs across the top of “pages” (as opposed to “posts”), show­ing the cat­e­gory hier­ar­chy back to the top.
  • Clean Archives Reloaded — This is a fancy way to get to the archives, but I find peo­ple typ­i­cally arrive at archived pages via search.
  • Extra Sentence Space — I am often anal about print, includ­ing text pub­lished on the inter­net. Something that has always bugged me about HTML is that mul­ti­ple spaces get coa­lesced into a sin­gle space. A sen­tence ends in two spaces! Period! Space-space! This plu­gin pre­vents that double-space-coalescing, tak­ing the two spaces I type into the WordPress edi­tor and mak­ing them two spaces when you read the post.
  • FeedBurner FeedSmith — This plu­gin pro­vides sta­tis­tics for the RSS feed. It’s nerdy and nice to have. I should prob­a­bly review the stats more than I do.
  • Get Comments Count — This plu­gin dis­plays a dynamic image con­tain­ing text like “3 com­ments” in the RSS feed. The RSS con­tent itself stays the same, but the linked image updates to dis­play the num­ber of com­ments. This is mainly a nicety for when the feed gets syn­di­cated to LiveJournal.
  • Google Analytics for WordPress — This inte­grates the blog to my Google Analytics account. That’s another thing I should prob­a­bly be check­ing more often.
  • Google XML Sitemaps — This pro­vides Google with a nice lit­tle con­cise descrip­tion of the web­site, so it does not have to crawl the entire site as often.
  • RSS Footer — To dis­suade con­tent from being stolen by spam­mers and posted on a fake linkblog, this plu­gin pro­vides attri­bu­tion and a link back at the end of each RSS arti­cle.
  • StatPress Reloaded — You would think I had enough stats already. This is a sta­tis­tics plu­gin I actu­ally (some­times) use, pro­vid­ing inte­grated stats and real­time view­ing of traf­fic. It is not as com­pre­hen­sive as Google or Feedburner, but this one I actu­ally remem­ber to check occa­sion­ally.
  • Subscribe To Comments — This allows com­menters to receive email fol­lowups.
  • Wordbook — Most of my LiveJournal and MySpace friends have moved on to Facebook. This updates Facebook with a lit­tle blurb each time I post some­thing new. I may actu­ally drop this soon. At one point in the past Wordbook would include an excerpt and thumb­nail (if your post con­tained a pic­ture), but it is strictly the post’s title now. Twitter-Tools informs Twitter using just the title and a link to the blog post, and my Twitter posts get pushed to Facebook, so Wordbook in its cur­rent form pro­vides very lit­tle any­more.
  • WPtouch iPhone Theme — This is a dynamic theme for the iPhone. If some­one con­nects with their iPhone, this theme auto­mat­i­cally kicks in and makes the user expe­ri­ence opti­mized for that screen and input method.
  • Yet Another Related Posts Plugin — Do you see those “related by key­word” links below? This plu­gin auto­mat­i­cally gen­er­ates those.


I really have very lit­tle expe­ri­ence with themes and upgrad­ing. I started with WordPress 2.6 or 2.7 and a slight cus­tomiza­tion to a free­bie theme. When WordPress added threaded com­ments, they were not prop­erly reflected in my theme, so I just took the basic crappy theme (you know: black text on a white back­ground with that rounded blue rec­tan­gu­lar header at the top, that screams “I did not spend any time cus­tomiz­ing WordPress”) and played around with the CSS file until I got some­thing resem­bling what you see now. Presumably, when WordPress 2.9 arrives, if there are any UI changes, I would have to do the same, which is going to suck.

I would imag­ine if you shelled out money for a pre­mium theme like Thesis, then you should expect a level of qual­ity and ser­vice such that upgrades will “just work.” But again, I have lit­tle expe­ri­ence in this realm and will have to yield to oth­ers’ opin­ions.


To reit­er­ate what I said above, make a list of your plu­g­ins. Cross out any­thing that is not a must-have. You are then left with a list of “if this breaks I’m screwed” plu­g­ins. Is there any­thing on that list that WordPress could not do before, but now includes as inte­grated func­tion­al­ity? Do those plu­g­ins come from reli­able sources or can you not tell? Perhaps stop by Beer & Blog and ask. (Ironically, I’m pimp­ing Beer & Blog here, but have never been there myself due to my Friday sched­ule.) If they do come from less reli­able sources, are there alter­na­tives with sim­i­lar fea­tures but do come from reli­able sources?

Posted in: Code