• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
Carrie Dils

Carrie Dils

WordPress Developer, Consultant, and Instructor

  • About
    • Work with Me
    • Around the Web
    • Media Kit
  • Blog
  • Podcast
  • Web Development Courses
  • Freelancing Courses

Genesis Child Theme Development: How to Make it Yours

Originally published on October 4, 2016 by Carrie Dils 93 Comments
Last updated on July 15, 2019

Interested in Genesis child theme development – either creating a theme from scratch or modifying an existing Genesis theme? This post is for you.

Note there are affiliate links in this post. Here’s my full disclosure.

An Overview of Frameworks, Parent Themes, and Child Themes

Let’s start by taking a moment to get on the same page about what a WordPress theme framework is and where the Genesis Framework falls into that definition.

The WordPress Codex (basically the bible of WordPress), defines theme frameworks in one of three ways:

  1. A “drop-in” code library used to facilitate development of a theme
  2. A stand-alone base/starter theme that is intended either to be forked into another theme
  3. A parent theme template

The Genesis Framework falls into the third category and is meant to serve as a parent theme.

In practical terms, this means that if you have a WordPress site with the Genesis Framework installed, then any Genesis child theme you activate will inherit all the functionality of the Framework (a.k.a, the parent theme).

The benefit of this structure is that you never need to directly edit files in the Genesis Framework, which leaves it safe to update.

Instead, you make customizations via a child theme, which you should never update.

To summarize, in the WordPress world, if you want to change the parent theme, edit the child.

What About a Grandchild Theme?

So, how does this structure translate to the Genesis Framework where, by default, you’re already working with a child theme? Do you then change the child theme by creating and editing a grandchild?

No. While technically possible, you’ll be hard-pressed to find support for a grandchild theme. As an alternative solution, I recommend treating the child theme as unique and making your customizations directly.

Take an existing child theme for Genesis and make it your own

Now with that bit of preamble, here’s the question that originally inspired this post:

I use Genesis as a framework, and I typically modify a child theme quite heavily. At what point can I call it my own? Do I have to create my own child theme completely from scratch to call it my own and list myself as an author on the stylesheet and reference it as custom in my contract? 

If you’re new to child theming, I recommend starting with an existing Genesis child theme and editing it to make it your own. What does it mean to make a theme your own? Let’s take a look at an example.

Let’s say I’m starting a new web project for a counseling group called Smart Passive-Aggressive.

There are some great mobile-friendly Genesis child themes, but I’m drawn to the Smart Passive Income Pro theme. I’ll use that as my starting point. I swear this has nothing to do with the amazing name similarity. Rather, the design of the theme is similar to what I want my finished theme to look like, so it makes sense to start with the SPI Pro theme as a base.

Before I make any customizations to the theme, there’re four things I need to do to make this theme unique.

1. Rename the child theme and move the theme folder

When you buy a theme, it’s typically available for download as a zip file from StudioPress or whatever third-party vendor you purchased from. I like to store this zip in an “original copies” folder on my machine along with other fresh downloads.

From there, I’ll unzip the theme (leaving the original zip as is) and rename the unzipped folder to match my new theme name.

In this example, I’ll rename the smart-passive-income-pro folder to smart-passive-aggressive.

Then, I’ll move the theme folder over to my local WordPress install theme folder (wp-content/themes/) and place the smart-passive-aggressive folder under version control.

Shows folder renamed to new theme
By renaming the folder, I’ve ensured that I’ll never mistakenly apply an update for Smart Passive Income Pro to Smart Passive-Aggressive.

2. Change the theme name in style.css

If I open up the style.css file in the smart-passive-aggressive theme folder, there’s a documentation block (a.k.a. “doc block”) at the top of the file that shows the theme name along with some other details.

/*
	Theme Name: Smart Passive Income Pro
	Theme URI: http://my.studiopress.com/themes/smart-passive-income/
	Description: With its friendly typography and bold design, Smart Passive Income Pro gives a welcoming and familiar face to your online platform.
	Author: StudioPress
	Author URI: http://www.studiopress.com/

	Version: 1.0.1

	Tags: one-column, two-columns, left-sidebar, right-sidebar, accessibility-ready, custom-colors, custom-header, custom-menu, featured-images, full-width-template, sticky-post, theme-options, threaded-comments, translation-ready, flexible-header, footer-widgets

	Template: genesis
	Template Version: 2.2.3

	License: GPL-2.0+
	License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

I want to change the Theme Name on line 2 from Smart Passive Income Pro to Smart Passive-Aggressive.

/*
        Theme Name: Smart Passive-Aggressive

By doing this, I’ve indicated in the documentation that this is no longer the Smart Passive Income Pro theme. I’ve also made it easier to identify the Smart Passive Aggressive theme from my WordPress admin.

Updated theme name now viewable in WordPress admin under Appearance > Themes
You can see the theme name change from style.css appearing in the WordPress admin under the Appearances > Themes menu.

3. Update the rest of the doc block in style.css

While I’m in style.css, I’ll update some other items in the doc block for a couple of reasons:

  1. A year from now if I go back to make a change to the Smart Passive Aggressive theme, this documentation will help me remember details, like which theme I used as a base.
  2. Should another developer eventually work on this theme, they’ll appreciate knowing these details, especially when a theme is based on another.
/*
	Theme Name: Smart Passive-Aggressive
	Theme URI: http://my.studiopress.com/themes/smart-passive-income/
	Description: Customized theme based on the Smart Passive Income Pro theme from StudioPress
	Author: Carrie Dils
	Author URI: http://carriedils.com/

	Version: 1.0.1

	Tags: one-column, two-columns, left-sidebar, right-sidebar, accessibility-ready, custom-colors, custom-header, custom-menu, featured-images, full-width-template, sticky-post, theme-options, threaded-comments, translation-ready, flexible-header, footer-widgets

	Template: genesis
	Template Version: 2.2.3

	License: GPL-2.0+
	License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

I’ve changed the Theme Name, but left the Theme URI as is, pointing to the original Smart Passive Income Pro documentation. That documentation might come in handy at some point, so it’s good to leave that Theme URI reference intact.

I’ve updated the Description to show that Smart Passive-Aggressive is based on the Smart Passive Income Pro theme. Again, potentially helpful information to know if I (or another developer) come back to this file later.

For the Author, go ahead and put in your name. Also update the Author URI to show your domain (again, very helpful to know where to find you if another developer ends up working on the theme).

The rest I’ll leave as is.

One important thing to note before we move on: Because this theme is originally licensed under GPL, anything I make based on it (i.e. my own child theme) must keep the same licensing.

4. Change the screenshot

While not technically necessary, updating the theme’s screenshot makes it easier to visually identify (and differentiate) in the WordPress admin.

The screenshot doesn’t need to be fancy.

The easiest method I’ve found is to open up the theme folder, find screenshot.png and then open it in an image editor. This ensures that I’m starting with the right image dimensions. For simplicity, I’ve given it a solid background color, overlaid text with the theme name, and saved it back to its original place in the root theme folder.

Once I’ve taken these four steps, even without changing a single thing about the appearance of the theme, I’ve made it a unique child theme and am ready to begin customizations.

Theme screenshots in WP admin
Theme screenshots in WP admin If I had both the Smart Passive Income Pro theme and Smart Passive-Aggressive theme installed, I could easily tell them apart.

5. But Carrie, I feel weird about this

Maybe you’re thinking that someone else went to all the hard work to create this theme and is it right that you’re trying to pass it off as your own?

No. And I’ll tell you why.

First, as you can see from the previous steps, the intent here is not to deceive anyone, but to help clarify that a child theme is unique and should not be mistaken for its “inspiration theme.” That is the right thing to do as it helps avoid any confusion or mistakes in the future when modifying the new theme.

Second, the beauty of WordPress is that its open-source software. The entire point is to use the code base that other people have made and make changes through themes and plugins to meet the specific needs of your project.

Note though that you do need to leave any existing copyrights in place (thanks Gary Jones for clarifying that).

I don’t want to get too philosophical here or start a GPL debate (much smarter people than me can break this down), but if you felt weird about taking the steps I recommend, just know you shouldn’t. It’s legit.

6. But Carrie, what about contracts?

I’m not going to talk in depth about contracts here, but I do want to try and answer the original question:

Do I… call the theme my own and…reference it as custom in my contract? 

For starters, I recommend being upfront with clients about whether you’re creating a complete custom design and theme for them versus taking a stock theme and modifying it to suit their needs. After all, the cost is quite different (think tract homes versus custom home builds). Modifying existing themes is a cost-saving measure for clients who don’t need a fully custom solution – sell that as a benefit.

Second, as I already mentioned, the theme must keep the GPL license. That doesn’t mean that your client is under any obligation to distribute or give away that code, but you cannot change the license. That’s true whether you modify an existing theme or create one from scratch. This is a nuance that most clients probably will not care about, but if they want to use WordPress, that’s how the licensing works. You can “hand over” ownership of graphic elements, photography, designs, whatever you custom create… just not the code.

Keeping these things in mind, write the language of your contract however you’re comfortable.

A note on working with Genesis child theme development (hooks and filters galore!)

The Genesis Framework includes a ton of action hooks and filters you can use to either change default behaviors or add new functionality.

This means that child theming with Genesis is more about utilizing hooks and filters than it is about creating templates, as you would with a more traditional WordPress theme.

For example, let’s say you’re creating a child theme based off a theme downloaded from wordpress.org. If you wanted to change the footer, you’d create a new template file for your child theme named footer.php that would override the footer.php file from the parent theme.

Conversely, with Genesis you’d use one of the many available hooks and filters to change the footer – no new template needed.

If you’ve done a lot of child theming before, doing things the “Genesis way”, is a significant mental shift. Once you get used to it, though, you’ll love how easily you can make changes.

If this is something you’d like to dig deeper into, I have two courses at Lynda.com that can help:

  • Customizing Themes with Genesis for WordPress (take this course first)
  • WordPress and Genesis: Building Child Themes from Scratch

Developer pro tips

Here are some lessons on Genesis child theme development I’ve learned along the way. These tips will save you time and leave you with cleaner, leaner code.

Develop locally

Get DesktopServer

If you’re developing on a live site, you’re wasting time. Skip the constant FTPing files and waiting on browser reloads by running WordPress locally.

There are a few requirements to run a WordPress site locally: an Apache server running PHP and a MySQL database. You can set up those components yourself or use a tool like DesktopServer, Local, or DevKit to do it for you.

Ditch the extra CSS

Unless you’re starting with a blank style.css file, your stylesheet will include things you don’t need.

For instance, you can get rid of theme color options since you don’t need them for a custom build. Other things you might remove are elements you know you won’t use, like certain layouts or widget areas.

Keep your stylesheet tidy

Make sure the Table of Contents in your style.css file stays up to date with the items you’ve added or removed. Staying organized makes your life (at least the coding part of it) easier.

When you add new styles, don’t stick them all at the bottom of the stylesheet – add them in context. For example, if you’re adding styles for a plugin, group it with the other plugin styles.

Document your code

Document every bit of code you write. If you copy and paste code from a tutorial or another site, document that too.

When you’re in the build process, all of your code is familiar and it’s tempting to skip the documentation, but when you step away – even for a few days – you’ll forget what a bit of code was for and waste your time re-orienting yourself.

Give your future self the gift of documented code!

Some final thoughts: Blank Slate vs a Starter Theme

Ask 100 developers how they prefer to create a theme and you’ll get 100 different answers.

The benefits of starting with a blank file in a code editor are that you don’t carry over unnecessary code.  You only create the code you need.

The benefits of starting with a starter child theme are that you can re-use code you’ve already written, speeding up your development cycle.

So, which is better? Well, there’s 100 different answers to that, but here’s the general guideline I recommend:

If you’re new to child theming:

Don’t start from scratch. Find a Genesis child theme that most closely resembles the result you want and then customize it to match exactly what you need. Over time you’ll develop a level of comfort working with theme files and a basic understanding of working with the unique hooks and filters in Genesis.

If you’re comfortable modifying existing themes:

Start from scratch – at least once. It doesn’t have to be complex or even for a real project, but doing building a theme from the ground up will help cement your knowledge. As you add only the code you need to get the result you want, you’ll gain a far deeper understanding of the Genesis Framework.

If you’re really finding your groove as a developer:

Create your own starter theme. There’s no need to re-invent the wheel every time you build a new theme. As a developer, you’ll have elements you always like to incorporate. By including these in your starter theme, you’ll save yourself time with each new project. Also, use version control as your starter theme will be ever-evolving.

Wrapping it up

Genesis child theme development is an art. While there’s certainly some science, such as correctly written code, the process of building out a child theme is a little different for everyone.

When you’re starting out, it’s helpful to see how other developers structure their workflow and about working with themes, but with each new theme you build, you’ll define your own workflow and find the things that work best for you.

The most important thing to remember? Have fun coding and don’t be afraid to break things! That’s the best way to learn.

Filed Under: Genesis Framework

Avatar for Carrie Dils

About Carrie Dils

I believe you can make a good living doing work that makes you excited to get out of bed every morning.

In addition to this blog, I host a podcast for freelancers, teach business courses at The Fearless Freelancer®, and teach WordPress and Front-end Development courses for Lynda.com and LinkedIN Learning. I'm also writing a book for freelancers.

Reader Interactions

Comments

  1. Avatar for Carrie DilsBonnie Boden says

    October 4, 2016 at 11:47 am

    Great info as always Carrie! One thing I think needs updating, though (or maybe clarification) — you mentioned that with the free version of DesktopServer you can run as many WordPress sites as you want locally. That’s how it is with the premium version, but not with the free version — they limit you to 3 sites. (I used it recently and had to delete an old site to set up a new site, so this was fresh in my mind.) Unless you meant you can run as many as you’d like…3 at a time 🙂

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      October 5, 2016 at 5:35 pm

      Good call, Bonnie! I’ve used the premium version for so long that I forget what’s not included in the free one. 🙂

      Reply
  2. Avatar for Carrie DilsKatharine_Di_Cerbo says

    October 5, 2016 at 7:14 am

    Thank you, Carrie! This really clarified this topic for me. And I’m quite surprised by the answer! But 3 cheers for the GPL!
    ~Katharine

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      October 5, 2016 at 5:33 pm

      3 cheers for it indeed! I feel like I’m spamming my own comments to mention this, but I recently chatted about it on the StudioPress.fm podcast if you care to listen:

      http://rainmaker.fm/audio/studiopress/carrie-dils-3/

      Reply
  3. Avatar for Carrie DilsChris Estes says

    October 5, 2016 at 7:47 am

    “Modifying existing themes is a cost-saving measure for clients who don’t need a fully custom solution – sell that as a benefit.” That’s a great tip, especially if your starting small with clients who can’t afford high-end development and just want a site.

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      October 5, 2016 at 5:32 pm

      Absolutely. Most people who don’t work in our space (i.e. our clients) don’t realize the difference between “off the shelf” and custom until they’re educated. So much of what we do is simply educating – especially about what the available options are what the price variance of those options are.

      Reply
  4. Avatar for Carrie DilsMatt Ryan says

    October 5, 2016 at 7:55 am

    I love the way you discussed the whole renaming issue in point #3 above. I’ve struggled on how to document this and your approach is, well, let’s just say the ‘KISS’ theory is fully represented.

    Problem solved on my end.

    Thanks again for another straight-forward commentary on development process.

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      October 5, 2016 at 5:30 pm

      LOL Keep It Simple, Stupid for the win! 🙂

      Reply
  5. Avatar for Carrie DilsAl says

    October 5, 2016 at 10:26 pm

    Excellent post (as always.) One question. Are you saying it is legal (moral, and/or ethical) to make a few (simple) changes to a commercial Genesis child theme, rename it and then go out and resell it to others?

    I would think that if I took a bunch of Studio Press themes, added a widget area here or there, renamed each to my own names… all of this work taking me a day… and the next day opened up a theme shop and selling the themes… that their lawyers would be coming after me at a dead run!!

    The SP people might have spent months creating the theme and here I come along and make a simple change to it and resell it!! How fair is that?

    Are you saying the GPL will let me do that?

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      October 6, 2016 at 2:45 pm

      Hey Al,
      Thanks for the comment. There’s a lot of nuance to the GPL, but the short answer to your question is yes. That doesn’t mean you wouldn’t get a call from SP though. 🙂

      Here’s a timely post on the topic: https://www.proteusthemes.com/blog/licensing-pros-and-cons-of-100-gpl-and-why-we-made-a-switch/

      Cheers,
      Carrie

      Reply
  6. Avatar for Carrie DilsAlice says

    October 7, 2016 at 10:51 am

    Thanks again Carrie for a very timely post. I’ve been customising a few child themes lately (including Utility Pro, natch 😉 ) and have been wondering about exactly this kind of thing. Good to know I’ve got it mostly right – and what I need to fix!

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      October 7, 2016 at 4:10 pm

      You’re quite welcome! And for the record, there’s probably nothing _wrong_ with what you’ve been doing. This is just my method. 🙂

      Reply
  7. Avatar for Carrie Dilsdialady says

    October 9, 2016 at 4:35 pm

    Specific answers to a mess of questions I’ve been needing clarification on. Thank you, Carrie!

    Can we take it one step further? I add or modify a bunch in the functions.php file, Do I need to change out the name of the old theme for the new theme in function / action calls (not sure if that is the correct php term)? I’ve been terribly inconsistent in doing this, but wasn’t sure what was considered best practice.

    Thanks a bunch!!!!

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      October 10, 2016 at 8:58 am

      My preference is to leave all the original function prefixes as they area (i.e. function spi_do_something()), but then prefix any new things I add with either my initials or the new theme name (or abbreviation), such as spa_do_something() or cd_do_something().

      By doing that, it makes things simpler at a glance to see what was “original” to the theme versus what was custom.

      In the case of me building a custom theme from scratch, I’d recommend making sure all prefixes are a match.

      Reply
  8. Avatar for Carrie DilsMatt Whiteley says

    October 9, 2016 at 7:17 pm

    Love this post. It took me a long time to put in the hours to create my own Genesis base child theme to work from for each of my custom builds, but it is something that saves me countless hours and I’ve been able to tweak over time to fine-tune the starting points of the development process. So, while I don’t work from other child themes, the concept is the same.

    Also, love the comments about tidy CSS (yes, please add CSS where it should be, not just at the bottom of your stylesheet) and the need to properly comment code. Very important for developer sanity!

    Cheers!

    Reply
  9. Avatar for Carrie Dilsmisskitty9470 says

    October 14, 2016 at 4:17 pm

    Hi Carrie,
    I loved your Lynda.com class customizing a Genesis theme, you taught me TONS!

    I have a follow up question to dialady’s post.

    I’ve taken a child theme, let’s call it Amazing, and wanted to rename it/make it my own called FatCat.
    I’ve gone through your tutorial and everything is working great.

    My question:
    In functions.php (and other child theme files) should I rename any functions that reference the child theme name
    ‘amazing’
    to
    ‘fatcat’
    or should leave those references as is?
    and how should I reference the theme name in any new functions I add?

    For example, in functions.php, should I change the following from ‘amazing’ to ‘fatcat’?:
    genesis_register_sidebar( array(
    ‘id’ => ‘home-slider’,
    ‘name’ => __( ‘Home Page Slider Widget’, ‘amazing’ ),
    ‘description’ => __( ‘This is the slider widget on your home page’, amazing’ ),
    ) );

    and for a new function should I reference ‘amazing’ child theme name or ‘fatcat’?

    Thanks in advance, and sorry to be so overly confusing with my question
    🙂

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      October 17, 2016 at 3:17 pm

      Heya! I’m so glad to hear you enjoyed my course!

      As for renaming functions, here’s my suggestion. What you point out in your reference above is the text-domain, which is used for internationalization (just had a new course come out this summer on WP & Internationalization <-- shameless plug 😉 ).

      Reply
  10. Avatar for Carrie DilsEric Dye says

    October 17, 2016 at 2:38 pm

    I’ve been curious about this before. Thank you! This makes a lot of sense. 🙂

    Reply
  11. Avatar for Carrie DilsElizabeth Ayling says

    October 26, 2016 at 2:12 am

    Hi Carrie,
    Your tut worked a treat, thanks! Your post so timely as I googled customization and you’ve just written this one. One query though, the original theme has specific settings which are labelled as such in the theme settings menu on the dashboard. So the label still reads ‘Orginal theme’. Is there a way to change that to my newly-created theme name? Of course, clients can still see the original named in the CSS, but it would be easier for them to have the correct (new) theme name on the dashboard menu. Thanks in advance.

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      October 26, 2016 at 12:55 pm

      Hey Elizabeth,
      You could definitely do that. Just search the theme files for whatever that label is to see where it’s coming from in the code and swap it out for your theme name.

      Cheers,
      Carrie

      Reply
      • Avatar for Carrie DilsElizabeth Ayling says

        October 27, 2016 at 3:03 pm

        Thanks Carrie, I’ll go hunting for it then! Glad I can change it.

        Reply
  12. Avatar for Carrie DilsCarolyn says

    October 28, 2016 at 4:07 pm

    Is it possible to use mostly JavaScript on a page? Or is it best to create a non WordPress site, that is, using a Bootstrap or Foundtion Framework?

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      October 30, 2016 at 11:51 am

      Hi Carolyn, sure. Just depends what sort of application you’re wanting to build whether it makes sense to use WordPress as a front-end or something else.

      Reply
    • Avatar for Carrie DilsAl says

      October 30, 2016 at 2:35 pm

      Bootstrap (i.e. non-WP) sites are quick to build and are terrific for sites where the user is not going to be making many or frequent changes because they have to make them directly in the HTML via a text editor usually through FTP. We do a lot of these kinds of sites for clients who don’t need a full CMS like WP (http://newmediacreate.com/lim/#portfolio) .

      However, there are lots of ways to incorporate javascript into WP once you get WP to disable the blockage of script tags. See this discussions for a start… there are many, many more via search:

      https://premium.wpmudev.org/blog/javascript-for-wordpress-people/?utm_expid=3606929-90.6a_uo883STWy99lnGf8x1g.0&utm_referrer=https%3A%2F%2Fwww.google.com%2F
      https://www.godaddy.com/garage/webpro/wordpress/3-ways-to-insert-javascript-into-wordpress-pages-or-posts/

      As for using WP as a vehicle for a full-bore web application besides the current “applications” of blogging, or e-com (via a plugin), or membership, etc. there is a ton of discussion on that with the development of the new WP API. Indeed, Automatic with their Calypso admin front-end has already incorporated a Javascript framework called React with WP (In truth React is not a framework in the true definition of the word, but actually just a library for the ‘view’ layer.)

      I’m somewhat surprised they chose React (owned by Facebook) over something a bit more versatile and with a large eco-system like Angular. By choosing any framework they have sort of locked themselves into a box they may not easily be able to get out of later on. They might have been better advised to keep things ‘plain vanilla’ with just Javascript and jQuery, similar to how they adopted open-source PHP. It is even more critical an issue with React which open-source today, but there is a clause in the React license saying that Facebook can revoke that.

      If you are thinking about creating something to compete with FaceBook or Twitter, or Netflix I don’t think WP is going to work too well until the entire codebase is cleanly re-written so that the CMS will scale better than it does currently. (True, you can overcome the lack of scalability of WP via hardware… the WPEngine and other other datacenters who can spin up Digital Ocean or Linode type servers quickly know how to do this, but it is better to first optimize the codebase and only use (expensive) hardware (server) solutions if needed.

      These are interesting and exciting days for WP, that’s for sure. It soon will not be your father’s CMS platform anymore. Just as Automatic created a ‘skunkworks’ project for Calypso I’m sure that they know the need to modernize the codebase and are working on implementing that project, if they have not already started.

      Reply
  13. Avatar for Carrie DilsRoberto Fernandez Larsson says

    October 28, 2016 at 4:13 pm

    Jaja! Smart Passive Aggressive, love your sense of humor!

    Reply
  14. Avatar for Carrie DilsCraig Watson says

    November 3, 2016 at 3:32 pm

    Hi Carrie,

    What effect does the above have on code such as this…

    “`

    //* Child theme (do not remove)
    define( ‘CHILD_THEME_NAME’, ‘Digital Pro’ );
    define( ‘CHILD_THEME_URL’, ‘http://my.studiopress.com/themes/digital/’ );
    define( ‘CHILD_THEME_VERSION’, ‘1.0.4’ );

    “`

    I have made the changes you have suggested but just noticed a few things.

    Craig

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      November 8, 2016 at 8:52 am

      Hey Craig, good question. That bit of code is defining constants (similar to variables) that can be referenced anywhere else in the theme.

      Reply
  15. Avatar for Carrie Dilsadmin says

    November 14, 2016 at 4:52 am

    Thanks Carrie, very helpful. I have been heavily modifying Genesis Child Themes for years and I haven’t renamed any of them. What are the advantages of renaming a grandchild theme?

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      November 18, 2016 at 5:47 pm

      I don’t recommend creating a grandchild theme (for reasons mentioned in the article). As for the benefits of renaming a child theme, it essentially boils down to recognizing that a theme is NOT identical to the child theme that “inspired” it and that you are the person who made the modifications.

      Reply
  16. Avatar for Carrie DilsAl says

    November 18, 2016 at 5:53 pm

    I suppose it is legal to take someone’s work, which they might have spent weeks or months on, make a few simple changes to the PHP code or some minor layout change or maybe a line or two of Javascript, and then rename what is still 99% of someone else’s work, calling it your own and selling it.

    Legal? OK. But IMHO it is not ethical and I would not do it.

    YMMV.

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      November 21, 2016 at 7:24 pm

      Yeah, it doesn’t sit well with me either, but that’s sorta like wanting to have my cake and eat it too. There are so many benefits to GPL (starting with the fact that I’ve built my business using GPL software), but what you’re describing is definitely a non-benefit, despite the legality.

      Reply
  17. Avatar for Carrie DilsYvonne says

    December 15, 2016 at 3:38 pm

    Thank you for this article Carrie. I’ve used Genesis on only one project so far, (but I’m hooked!) and I created a grandchild theme for it, not knowing at the time what to do. Thankfully, now I do.

    So I’ve read in the above comments that you do not recommend changing any theme references in the functions file. I’m assuming that would include the CHILD_THEME_NAME constant? If so, I would then need to refer to any child theme references in my future customizations with the constant of the original child theme (let’s say the Sample Theme)?

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      December 16, 2016 at 8:59 am

      There’s nothing wrong with leaving CHILD_THEME_NAME as the original theme name or your custom theme name (I was just giving my opinion). The beauty of defining it in a constant though is that you’d never need to refer to the theme name (original or custom) since you can simply reference CHILD_THEME_NAME.

      Where this is NOT true is when you’re dealing with text domains for internationalization. For example:

      // WRONG
      __( 'Hello!', CHILD_THEME_NAME );
      
      // RIGHT
      __( 'Hello!', 'theme-text-domain' );
      

      That might be outside the scope of the question you were asking, but if you want to read more about internationalization (and making text strings translatable), you might like this article

      Reply
  18. Avatar for Carrie Dilsattuneartfully says

    December 17, 2016 at 7:11 am

    Hi Carrie!

    I’m wondering if you have any information/articles on code documentation and best practices?

    Thanks for a great article.

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      December 19, 2016 at 10:07 am

      Absolutely! I’d recommend starting here:
      https://make.wordpress.org/core/handbook/best-practices/inline-documentation-standards/php/

      Reply
  19. Avatar for Carrie DilsLucy Woodman says

    January 27, 2017 at 12:20 pm

    Never mind, fixed it… *side steps away and hopes nobody notices my comment…*

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      February 6, 2017 at 11:46 am

      Heh heh – deleted. You’re all safe. 🙂

      Reply
  20. Avatar for Carrie DilsGinger Coolidge says

    January 29, 2017 at 9:24 pm

    Howdy,

    Tip for those using Sass – change your doc block in your *style.scss* file, NOT the style.css. I forgot and couldn’t figure out where my customizations went after it refreshed. 🙂

    Reply
  21. Avatar for Carrie Dilshomdahal4180 says

    February 5, 2017 at 7:52 pm

    Hello Carrie
    I have modified a genesis child theme which is distinctly unique and well documented and clean code.
    Can i sell this theme in the market as my own theme?

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      February 6, 2017 at 11:40 am

      Sure.

      Reply
  22. Avatar for Carrie DilsRob McDonald says

    March 17, 2017 at 1:03 pm

    Hey Carrie,

    I love this article, it has been a great help to me in customizing my child themes with Genesis.

    I have a question for you about a non-genesis theme called GeneratePress. I wondered if you have ever used this one and if so, have you had any issue with using a child theme with it. Specifically, with changing the name of the theme that shows in the source code. I created a child them and activated it and it is still showing the parent name in the source code. I know this doesn’t happen in Genesis, so I wondering why its happening with Generate Press.

    Thanks Carrie, for any feedback you may have.

    –Rob

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      March 20, 2017 at 12:13 pm

      Hey Rob,
      I’m not familiar with GeneratePress, but you may want to check this article just to make sure you’ve dotted your i’s and crossed your t’s.

      Cheers,
      Carrie

      Reply
  23. Avatar for Carrie DilsSocial Dolly says

    March 24, 2017 at 11:57 am

    I have recently shifted from thesis to Genesis and honestly, I found it much easier to deal with it. You really need to be a professional otherwise thesis is not for you. But genesis can be managed with a little bit of knowledge and guidance like you have given.

    Reply
  24. Avatar for Carrie Dilsjodzeee says

    April 12, 2017 at 6:12 pm

    Hi Carrie: What about the information in functions.php? Do you change that as well?

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      April 17, 2017 at 11:00 pm

      Yep!

      Reply
  25. Avatar for Carrie DilsOliver Cowan says

    April 28, 2017 at 3:00 am

    Carrie this article brings so much clarity to help with the move from theme tweaker to legit custom child theme creator. I am looking forward to working through some of your courses on Lynda.com this weekend.

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      April 28, 2017 at 8:39 am

      Thank you, Oliver. I’m thrilled to hear it!

      Reply
  26. Avatar for Carrie DilsKeller says

    May 13, 2017 at 1:03 pm

    Hey Carrie, your tuts have helped me numerous times and I just wanted to say thank you! 🙂

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      May 24, 2017 at 3:59 pm

      Thanks, Keller! 🙂

      Reply
  27. Avatar for Carrie DilsManoj Patil says

    June 1, 2017 at 1:20 am

    Hallo Carrie Mam,
    I m a big fan your blog and Genesis theme but I am new blogger and not any idea about styling child theme. I am installed genesis child theme on my blog but not stylish theme display my blog. Please see the http://hindimepadhe.com and how to edit Code and where file it edit for style.
    Please suggest me.
    Thanks.

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      June 1, 2017 at 3:02 pm

      Hi Manoj,

      You’re asking a question that has taken others years to learn to provide an answer. If you want to learn, I can offer resources, otherwise, I would recommend hiring someone to help.

      Cheers,
      Carrie

      Reply
  28. Avatar for Carrie Dilsdeepeshpandole says

    November 15, 2017 at 1:53 am

    thanks for sharing

    Reply
  29. Avatar for Carrie DilsRick says

    December 7, 2017 at 8:02 pm

    One reads this stuff and goes along, okay, I got it and then at the end of the beginning part of your writing, you contradict everything you just said by these words:

    “To summarize, in the WordPress world, if you want to change the parent theme, edit the child.”

    I do not agree and I think the problem is a lack of consistency in vocabulary when people speak on this subject for it’s a dead simple concept muddied by the ever changing definitions of the terms. In my WordPress World, if I want to “…change the parent theme…” I DON’T, PERIOD.

    One NEVER changes the parent theme. That is the framework via its sorted heraldic osmosis gives functionality to the child. That is what one keeps just the way it is and doesn’t mess with. That is why one uses a child theme. Do your changes in the child so the parent (IT IS THE SAME AS A FRAMEWORK) when updated only updates the PARENT, (the Framework) and NOT the child, which has your custom settings.

    One cannot “…change the parent theme…” by editing the child as the files of each should have (for the most part) have a wall between them but for functionality.

    I would word it differently.
    “To summarize: in the WordPress World; if you want to change what it looks like, which is the child theme, ONLY change it, the child theme and do not touch the Parent, the Framework, for that, the Parent, the Framework is what gets changed when it is updated, and would thereby obliterate your changes, while keeping all your customization’s untouched, secured in the child.”
    I appreciated your other writings and comments as well as herein on ownership but that is dictated by copyright laws and WordPress’s EULA.

    (…and as an aside, my CAPS are for emphasis of the term, not emotion.)

    Rick

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      December 8, 2017 at 12:11 pm

      Just semantics, no? Instead of “change the parent theme” maybe “modify the default behavior of the parent theme.”

      Reply
  30. Avatar for Carrie Dilskumar says

    January 6, 2018 at 6:20 pm

    interesting it look like a complete guide for me genesis theme development is not so easy but not so hard its work of trick and anyone can make it quite beautiful design

    Reply
  31. Avatar for Carrie DilsPriyangshu Borgohain says

    March 1, 2018 at 8:25 am

    Thanks a lot for this in-depth guide mate. We have just started a gaming site, and was thinking of moving into Genesis, and add some custom functions to it via a child theme. Do you have any references for our developer to get started on things?

    Regards,
    Priyangshu

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      March 1, 2018 at 2:28 pm

      I sure do! I have a couple of in-depth courses for Genesis. Here’s a good one to get you started: Customizing Themes with Genesis for WordPress.

      Reply
  32. Avatar for Carrie Dilsadunate says

    April 19, 2018 at 3:08 pm

    Thanks for this helpful article and also your Lynda.com tutorials. Are child themes regularly updated and if so, what parts of them? Say I want to make a few simple tweaks to the css to the Business Pro child theme. Should I make it to Business Pro’s css and redo them whenever it updates. Or should I remake Business Pro to my own theme, as you describe in this article. If remaking the child theme, will I miss out on necessary updates?

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      April 24, 2018 at 9:07 am

      Hi there, good question. You’ll never want to update a child theme after making edits to it. If an update were to come out for, say, Business Pro, you could re-download the files and look for a file called Changelog.md or Changelog.txt to see exactly what changes were made in the updated version.

      Chances are very high that the changes are not critical and you don’t need them. If you did though, you could always apply the changes manually to your modified version of the child theme.

      Reply
  33. Avatar for Carrie DilsSusan Taunton says

    August 8, 2018 at 3:33 pm

    Hi Carrie,

    I am so SO grateful for your two excellent lynda.com tutorials on Genesis and child themes, which is how I found this page, which also contains essential info for me. You are a life saver to this Genesis newbie!

    Doesn’t it seem that there should be a better way to supply child theme updates if customizing the child theme (commonplace, right??) means one should never simply apply updates but check the changelog.txt (as you describe in the previous comment) and then apply those changes manually?

    Susan

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      August 10, 2018 at 4:26 pm

      Thanks, Susan!
      I don’t recommend updating child themes (updates are typically for teeny-tiny CSS bugs or typos, rarely anything massive) – just keep Genesis updated and you’ll most likely be fine. If you do opt to update a child theme, I’d take the route you suggested of checking the change log and manually applying those updates to your theme.

      Reply
  34. Avatar for Carrie DilsSusan Taunton says

    August 11, 2018 at 2:48 pm

    Ah! Very reassuring to hear that child theme updates can be expected in general to be not very consequential or critical… Thanks, Carrie – you’re the best! !

    Reply
  35. Avatar for Carrie DilsChaten Parmar says

    August 21, 2018 at 10:27 am

    Are there any security implications to consider when creating a child theme or when updating it?

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      August 21, 2018 at 11:53 am

      If you’re ever writing custom code, you’d want to be aware of best practices to mitigate security risks, but other than that, there’s not really a concern associated with updating themes.

      Reply
  36. Avatar for Carrie DilsPhil says

    October 17, 2018 at 1:22 pm

    Hi Carrie,

    I’ve watched a couple of your classes on Lynda and read this article, so I think I already know your answer: you recommend just making a Genesis child theme your own. However, I was trying another approach for a Genesis child theme that I bought (so far I only want to change up the Google Fonts). At the bottom of the child theme’s funtions file I added an include_once to register my own custom-functions file. In that file I used wp_enqueue_style to add my own Google fonts and to register my own custom.css file, then updated that with my preferred fonts.

    The problem is, my Google Fonts are not displaying. I see them and the custom.css file when I use the developer tools, but they have that strikethrough through them. My preferred fonts will display if I toggle the checkboxes for the child theme’s fonts off. I use the Show Current Template plugin and can see my custom-functions file down the list, next to the child theme’s functions file, so that part must be working. I wonder if I need to do something like wp_deregister_style to remove the child theme’s fonts.

    As I said, I’m pretty sure you would recommend I just make my edits in the child theme’s functions and style files, and it almost looks like there is a comment to that effect in the child theme’s own functions file, but I thought I would ask what I was doing wrong anyway.

    Thank you.

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      October 19, 2018 at 2:43 pm

      Hey Phil! You’re right that you’ll want to dequeue the original theme fonts (search the theme files for `wp_enqueue_style` and you can quickly find where the original theme fonts are loading in). Assuming you don’t need those fonts, there’s no reason to load them since that just adds additional page load time for the server call.

      Theoretically, you can just delete the wp_enqueue_style() function calling the original theme fonts and remove a reference to those fonts in the stylesheet. That should set you straight.

      Reply
  37. Avatar for Carrie DilsAdrianne says

    November 13, 2018 at 9:17 pm

    Hi Carrie,

    I just finished your WordPress Themes: Customizing Themes with Genesis on Lynda/LinkedIn. Great course! I am in the process of revamping my site and offering WordPress design services utilizing Genesis. Thanks for this article too. I was concerned with the proper way of calling a theme my own.

    Grazie!

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      November 13, 2018 at 9:44 pm

      Thanks, Adrianne. Glad you found it helpful and wishing you the best with your new site!

      Reply
  38. Avatar for Carrie DilsManikandan says

    November 19, 2018 at 11:49 am

    Hi Carrie,
    I like to create a Genesis child theme and I like to sell it on my blog.
    I have a doubt I can use Genesis simple theme JS files for my child theme or I need to create my own JS files to sell my Genesis child theme?.
    Thank you!

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      November 21, 2018 at 11:35 am

      It’s all licensed under GPL (https://github.com/studiopress/genesis-sample/blob/master/js/genesis-sample.js#L6), so you are free to do as you wish with it.

      Reply
  39. Avatar for Carrie DilsManikandan says

    November 25, 2018 at 8:08 am

    Thank you so much for your help.

    Reply
  40. Avatar for Carrie DilsS.K YADAV says

    January 1, 2019 at 7:37 am

    This is what I searching for. Thanks!

    Reply
  41. Avatar for Carrie DilsNur Salam says

    February 1, 2019 at 10:00 am

    Thanks…

    Reply
  42. Avatar for Carrie DilsBlogguy says

    March 8, 2019 at 8:57 am

    Nice Article Ma’am. It’ll help me a lot

    Reply
  43. Avatar for Carrie DilsRuhul Alam says

    March 8, 2019 at 8:58 am

    Thanks

    Reply
  44. Avatar for Carrie DilsPuran Mal Meena says

    March 14, 2019 at 9:40 am

    Very reassuring to hear that child theme updates can be expected in general to be not very consequential or critical Thanks

    Reply
  45. Avatar for Carrie Dilsrahul says

    April 13, 2019 at 5:32 am

    Hey Carrie, do you provide any kind of theme development service? Can you help us out to develop minimal fastest theme. AS developing by self isn’t enough. Anyways like your tutorial.

    Reply
  46. Avatar for Carrie DilsFrancesco says

    May 6, 2019 at 6:40 am

    Thank you Carrie!

    I’m using your article 2½ years after you first wrote it and it is working beautifully. Thanks for taking the time to share this. Have a wonderful day!

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      May 24, 2019 at 9:29 am

      Glad to hear it!

      Reply
      • Avatar for Carrie DilsFrancesco says

        June 29, 2019 at 2:42 pm

        Hello again Carrie,
        So far so good. I’m still getting used to the block editor and the “customizer” but for the simple layout that I need, things are going well. What do you think?

        Have a nice weekend 🙂

        Reply
  47. Avatar for Carrie DilsTom says

    May 14, 2019 at 7:37 am

    Hi Carrie,

    Should you also update the theme name references in the templates.php file as well?

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      May 24, 2019 at 9:32 am

      I usually don’t bother.

      Reply
  48. Avatar for Carrie DilsHowtechpro says

    June 19, 2019 at 10:07 am

    Hello carrie,
    It is really an awesome and helpful post. Keep writing

    Reply
  49. Avatar for Carrie DilsMike Wright says

    July 18, 2019 at 7:45 pm

    Hi, Carrie
    I just finished WordPress Themes: Customizing Themes with Genesis on LinkedIn Learning. You make understanding hooks so easy.

    Seriously, my confidence in building my own theme actually exists now. Thanks a lot!
    You packed the course with major resources to reference to including this post. The biggest for me is the Visual Hook Guide via Genesis Tutorials. GOLD!

    THANK YOU!

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      July 27, 2019 at 8:37 pm

      That’s great, Mike. I’m glad to hear it!!

      Reply
  50. Avatar for Carrie DilsGujarati friend says

    July 24, 2019 at 11:42 am

    Thank you Carrie!

    I’m using your article 2½ years after you first wrote it and it is working beautifully. Thanks for taking the time to share this. Have a wonderful day

    Reply
  51. Avatar for Carrie DilsNasim Khan says

    August 28, 2019 at 1:00 am

    Thank you so much for your help.

    Reply
  52. Avatar for Carrie DilsNeum says

    August 29, 2019 at 7:29 am

    Just wanted to say I found this really post really useful in working with one of my first Genesis based sites. Thanks for taking the time and sharing your knowledge.

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      August 29, 2019 at 4:35 pm

      Glad to hear it!

      Reply
  53. Avatar for Carrie DilsMark says

    February 22, 2020 at 8:47 pm

    Hey Carrie. I always wondered what all the excitement was about the Genesis framework and themes until i started reading more about how great it is from a few good sources and then i found your resources…awesome and super helpful so thank you!

    Do you know why they took SPI theme off the site in StudioPress? I wanted to see how good it was but it seems it is nowhere to be found now 🙁

    Thanks for sharing your talents!

    Reply
  54. Avatar for Carrie DilsIjaz Rafi says

    April 2, 2020 at 4:54 pm

    Thank you for writing this post Carrie, you saved my day, We were going to customize a third party theme and were not sure we can change the theme name or not or can add our URL or not.

    But this beautifully written post helped me with all my questions.

    Keep writing 🙂

    Regards,

    Ijaz Rafi

    Reply
  55. Avatar for Carrie DilsJulien says

    June 23, 2020 at 8:20 am

    Hi Carrie,
    Thanks for the effort you put into the articles, they’re very helpful and well explained.

    I bought your genesis theme course on LinkedIn. Great resource!

    When it comes to a editing a child theme, how would you update on a constant basis a style.css file or any of the php files from a local to a live server?

    Is there any tool you’d recommend for version control?

    Thanks,

    Julien

    Reply
    • Avatar for Carrie DilsCarrie Dils says

      June 26, 2020 at 8:17 am

      Hey Julien,
      I’m glad you found it helpful! I use Github for version control. I’ve used Deploybot (https://deploybot.com/) in the past to push code to a live server (basic workflow is to use GH locally, push changes to origin repo, and then deploybot sends it to server). There are a ton of deployment workflow options, though some of them might be overkill for what you’re trying to accomplish.

      If you’re just looking for something to push local to live, I like Local (localwp.com) and DesktopServer.

      Cheers,
      Carrie

      Reply

Leave a Reply Cancel reply

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

Primary Sidebar

Search

Heya, I’m Carrie Dils

Carrie Dils chillin at the beach

Articles

  • Business
  • Front-End Development
  • Genesis Framework
  • Mental Health
  • Web Accessibility
  • WordPress Tutorials

Things I Love ❤️

My Tech Toolbox

Favorite Business Books

  • OfficeHours.FM
  • My Courses on LinkedIN Learning
  • The Fearless Freelancer®

© 2021 CWD Holdings LLC