Introducing my latest course: Freelancing Foundations

Never miss a thing!

Sign up to have the latest news and announcements from my site delivered straight to your inbox.
  • This field is for validation purposes and should be left unchanged.

Reader Interactions

Comments

  1. 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 🙂

  2. “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.

    • 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.

  3. 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.

  4. 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?

  5. 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!

  6. 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!!!!

    • 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.

  7. 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!

  8. 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
    🙂

  9. 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.

    • 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.

  10. 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

  11. 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?

    • 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.

  12. 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.

    • 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.

  13. 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)?

    • 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

  14. 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. 🙂

  15. 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?

  16. 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

  17. 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.

  18. 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.

  19. 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.

    • 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

  20. 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

Leave a Reply