How to Build a Genesis Child Theme from Scratch


I’m super excited about my latest course at LinkedIN Learning: WordPress and Genesis: Building Child Themes from Scratch.

True story: there are affiliate links is this post. They won’t hurt you.

The Backstory

One of my first courses with was customizing Genesis child themes. I was excited about that course (and still am) because it teaches the fundamentals of the Genesis Framework, including working with those mysterious action hooks and filters (if you’ve taken the course, you’ll know they’re not mysterious anymore…).

I designed that course to help lead someone down the road from “I’m a copy-and-paste other people’s code WordPress site assembler” to “I understand the whys and can write my own basic code WordPress developer.” That was a course about “teaching a man to fish,” so to speak.

But the People Wanted More

“But I want to know how to build a theme from scratch,” they cried! Ok, that might be a bit dramatic, but across every social platform where I interact with other Genesis users, that was a common refrain.

Personally, I don’t start from scratch with every theme build (I built my perfect starter theme), but there’s a lot of value in understanding each component that goes into a theme and why you choose some things over others.

Enter: my latest LinkedIN Learning course, WordPress and Genesis: Building Child Themes from Scratch.

In that course, I start with a blank file and whip it into a fully-functioning child theme for the Genesis Framework. Is it beautiful? No. Is it the best theme ever? No? What it is is a bare bones approach to understanding all the code that makes up a child theme for Genesis.

p.s. I keep re-emphasizing Genesis because it’s different than child theming for other WordPress themes. If you wanted to build a theme from scratch using underscores, for instance, check out this course by my friend Morten.

A Gift for You

Want to learn how to build a Genesis child theme from scratch but don’t have a account? Well, one of the perks I get from Lynda is the ability to offer my friends free trials. Woot!

Get a free 30-day trial to LinkedIN Learning. That’s plenty of time to take my latest course and browse their massive course list for other topics you might enjoy.

The Outtake Reel

I’m really done sharing “important” things in this post, but thought it’d be fun to share some behind the scenes details of this course.

Live Action

For starters, this was my first course with a “live action” component. The live action amounted to my doing a live course intro and outro (you can watch the intro here). There was a crazy amount of prep that went into that 90 combined seconds of video!

Me on the green screen

Total shoot time was about 3 hours. Between practice reads and messed up takes, my voice got pretty scratchy and I drank a lot of this. I also drank water out of a box (I think that’s a California thing?) and got to “take 10.”

I had a stylist do my makeup and I even wore fancy pants (although they never made the cut – ha!).

Let me just say, this girl is not cut out for the movies.

In the Booth

Sign showing who's in which booth

The rest of my time recording the course was spent in an 8×8 padded black recording booth. Between this course and one other (not yet released), I spent 40-50 hours in that booth over the course of a week.

After my courses go through the editing process, that winds up being less than 3 hours of actual course material. You’d be surprised how hard it is to consistently get a good take on the first try.

Yes, I spent my days in a room with padded walls. 😉

Still though, it’s a really neat experience. Plus.,when I’m done in my dark little booth, I’ve still got a little daylight to enjoy on the California coast:

carpenteria sunset

On a personal note, both the process of recording courses and the feedback I get from folks who’ve taken them is tremendously rewarding. If you’ve ever taken one of my courses, thank you (as ever) for letting me be a part of your learning journey. 🙂

38 thoughts on “How to Build a Genesis Child Theme from Scratch”

  1. Because of your course, I decided to build my own Genesis child theme, since then, I am looking for tools to make it easier. These are some of them: beaver builder and dynamik site builder. I hope you consider to create a class or video about these tools, they look very interesting and amazing.

  2. Nice! Been an avid reader of your blog since a few months ago and I’ve got to say, I’ve learned a lot from your posts! I’ll check the course out on and leave a detailed review afterwards 🙂

  3. Pingback: Church Tech Snack Pack #104 - ChurchMag

  4. Hi Carrie, I took most of your courses on and I learned so much, thank you for teaching those courses. I watched your Building Child Themes from Scratch course from start to end when it first came out, and I am now re-watching it because I am building a child theme from scratch as I watch.

    When I came to chapter 4 and did the HTML5 reset, the site I was building didn’t reset. I went back and look at your exercise files to see there was something I was missing but I couldn’t seem to find any. I even looked at the Genesis Sample functions.php to try to figure out but to no avail. So I looked into codex and added wp_enqueue_style( ‘style’, get_stylesheet_uri() );() right after the docblock and it worked for me. But now I am wondering whether it was the right thing to do? Should I be hooking that piece of code somewhere instead?

    I am sorry if this is not the right place to reach out to you on questions like this, but if you could shed some light for me, that would be so helpful! Thank you!

    1. Glad you’re enjoying the course!

      You shouldn’t have to enqueue your main stylesheet. I assume it’s named style.css and is in your theme’s root directory?

      You can use to check the exercise style.css against your style.css just to make sure. Otherwise, if you want to post your theme code on Github or Bitbucket, I can take a look (my username on both is `cdils` if you don’t want to open public access to those files).

  5. Carrie, thank you so much for your reply! I figure out why my stylesheet wasn’t updating, it was because I was suppose to disable caching from my hosting dashboard! Oh well, it took me a day to figure it out, but I am glad I learned something. 🙂

    Also, I am curious, where is the right place to ask questions if I have other questions regarding your tutorials on

  6. Hi Carrie. A great course and I am enjoying it! I have noticed though that with the recent Genesis Update (2.27 I think – March 2016) that the registered widgets areas don’t show in the admin as they did before. I figure it’s to do with the update as they showed previously but when I updated the framework halfway through the course, they suddenly stopped showing. I also don’t see an area on the Lynda to contact you with a question, which is why I’m asking here.

Leave a Comment

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

Carrie Dils uses Accessibility Checker to monitor our website's accessibility.