So I’d been building WordPress themes based on one or another template, but it always seemed like I had to start from scratch each time in selecting one. Then it seemed that utilising a framework like Genesis was the recommended best practice, and I did so for quite a while – even though I wasn’t 100% convinced of the benefits.
Then, more recently, I picked a theme for a friend’s site, and built out a child theme based upon it, but soon ran into a completely inexplicable display glitch. I put in a support request to the theme developer but wasn’t hearing back.
In the interim, I came across this video by Allan Cole presented at the WordPress NYC Meetup Group, in which he explained his journey from using child themes, to frameworks, to his perhaps surprising conclusion that he should just build it all (or most of it) himself. His experience with frameworks like Genesis resonated with me. I was spending a lot of time learning Genesis and how it did things, and in so doing was prevented from getting more familiar with the WordPress code itself. His core takeaway: bite the bullet and learn the core WordPress way of doing things, and the benefits will far outweigh the drawbacks. If you want to modify something, you won’t be limited to just the options presented by the theme. If something breaks, you’ll be able to fix it.
Then, something else alarming happened. A client’s site “broke” when I updated its parent theme. How could this be? I was doing everything by the book, or so I thought. This was just the sort of situation I was trying to prevent by following best practices. I always encouraged clients to keep things up to date, but now it seemed like that could be dangerous advice.
I was able to roll back the client site to a working version from backups. After much meticulous investigation, and setting up a staging site as a safe place to experiment, I learned that I had overlooked a key directive of the Genesis framework: don’t depend on importing the parent theme’s styles into a child theme (which had been my standard practice), but instead manually copy them into your child theme’s stylesheet. I did so, and the site worked perfectly – and I knew it would continue to do so, as it was not dependent on a parent theme whose styles might change in a way that adversely affected my customized design. But still, it begged the question, “why even have a parent theme, then?”
So I studied the main contenders for “starter themes” – bare-bones themes you are expected to modify for your own purposes, building from scratch. In the end, I settled on Eddie Machado’s Bones theme.
There were hurdles galore, but I’m so glad I had the courage to overcome them. One was the way Bones is set up to use SASS (or SCSS), a way of automating and simplifying CSS coding while also giving you some powerful features – like variables – that CSS doesn’t offer. After some initial thrashing about, I installed Compass and it really did the trick – “watching” my SCSS files automatically as I edited them, and live-updating the regular CSS stylesheet to match my changes. It was easy to set up and a breeze to use. I finally get why SASS is a thing!
Something else I can’t emphasize enough is how Bones’ author has packed tons of advice right into his files, in the comments. It really does feel like you have a friend alongside you pointing out the important stuff and offering guidance (and copious links to more info) when you need it. Oh, and he’s often very funny – always a plus in my book!
I decided to rebuild that friend’s site using Bones and to ditch the prefab theme I’d been using. It went very smoothly and before I knew it, I had a beautiful site that looked exactly how I wanted it to.
Then, just yesterday, I finally received a support response from the author of the theme I’d been using before. Seven weeks later. I just sent them a brief note thanking them but advising that I’d solved the issue another way.
This sealed the deal for me. In the time it took a theme developer to reply to me (and don’t get me wrong, I’ve seen much more prompt response from many of them), I was able to rebuild the entire site, to my exact specs, by hand, with the hands-on Bones theme. No frameworks, no child theme dependencies. I’m still on the learning path – and really, when are any of us ever not on that path? – and I certainly don’t know it all but I’ve been very pleased at the many challenges I’ve been able to solve with just a bit of research and experimentation – plus the excellent built-in support in the Bones theme.