Do you need a GeneratePress child theme? Why I don’t use one

I ran a child theme for a while without knowing what it was for. Here's when GeneratePress actually needs one, and what I use instead.

Published Nov 13, 2026 · 5 min read

Most GeneratePress sites don’t need a child theme. You need one if you plan to edit the theme’s template files or add custom template files, and GeneratePress’s support team also suggests one if you’ll have lots of custom code. If all you do is change Customizer settings, add CSS, and add a few PHP snippets, a child theme adds a layer you’ll never use. I know because I ran one for a while without understanding why I had it.

I used one because I thought I was supposed to

A while back, I installed a child theme on a GeneratePress site because that’s what you did. Most WordPress tutorials I read said to use one, so I did, and I never stopped to ask what it was protecting. It turns out I wasn’t alone. GeneratePress’s own forum has a thread from someone who had “only a vague memory of why and how I got the child theme,” except that it seemed like a good idea at the time.

Today, none of my sites run one. The header, the footer, the styling, and the custom functions all live somewhere else, and updates have never cost me a change.

What a child theme actually does

A child theme sits on top of a parent theme, GeneratePress in this case, and inherits its design and features. Its job is to let you change the parent without editing the parent’s files. That matters because when the parent theme updates, any edits made directly to its files are overwritten, while anything in the child theme stays put.

Two details are worth knowing. A template file in the child theme with the same name as one in the parent replaces the parent’s version. A child theme’s functions.php doesn’t replace the parent’s, though. Both load, with the child’s first.

When you do need one

GeneratePress’s support team has said again and again on its forum that a child theme is only required if you’re editing the theme’s template files. So consider one if you:

  • Want to change a template file itself, such as header.php
  • Want to add your own custom PHP templates to the theme
  • Have a lot of custom CSS and PHP and would rather keep it in theme files (support suggests a child theme here, though it isn’t required)

If none of those sound like you, GeneratePress’s child theme documentation has put it plainly: “if all you’ll be doing is adding CSS or PHP, a child theme probably isn’t necessary.”

What I use instead

Everything I need to customize on my sites is handled by three tools, all of which survive theme updates.

Elements, for layout and hooks. Elements is a module in GP Premium. The Hook element lets you place custom content at hook locations across the site, with display rules that control where it shows, and it can run PHP if you tick the “Execute PHP” box, unless your host has file editing switched off (DISALLOW_FILE_EDIT). On this site, the header and footer are both Elements.

Additional CSS, for styling. It’s a core WordPress feature, found under Appearance, Customize, Additional CSS, and it isn’t wiped when GeneratePress updates.

WPCode, for PHP. WPCode lets you add PHP snippets without editing your theme’s functions.php, and it includes code validation meant to help prevent common errors. The archive page on this site, for example, is a WPCode snippet. With a child theme, that code would have gone in functions.php. GeneratePress’s own Adding PHP doc lists a snippets plugin (Code Snippets) first, ahead of a child theme’s functions.php, and notes that you can activate and deactivate individual snippets.

All three live in the dashboard, so I can see what’s customized on any site without opening a file manager.

The trade-off

The one catch is that Additional CSS belongs to the active theme. In GeneratePress’s words, “if you switch themes, you’ll lose your CSS.” It isn’t deleted, though. WordPress saves it with the old theme, so you copy it across to the new one. The same goes for adding a child theme later. It counts as a new theme, so you’d copy your Additional CSS across, and you may need to re-upload your logo, re-add your copyright text, and reassign your menu locations, which WordPress also saves per theme. Settings you made in the Customizer’s theme options carry over, though, according to GeneratePress.

Since I’m not planning to switch away from GeneratePress, that doesn’t worry me. If you think you might switch themes one day, keep a copy of your CSS somewhere safe.

If you already have a child theme, there’s no need to rip it out. GeneratePress’s support team says there’s really no point changing it. Just check that its style.css doesn’t contain an @import line that loads the parent GeneratePress stylesheet again, because GeneratePress says that line stops some Customizer options from working. The same goes for a functions.php snippet that loads the parent stylesheet, since GeneratePress already does that for you.

Quick check: do you need one?

Answer these, and you’ll know:

  • Do you need to edit a GeneratePress template file? If yes, use a child theme.
  • Do you only change Customizer settings? If so, you don’t need one.
  • Do you add some CSS? Use Additional CSS.
  • Do you add PHP? Use a snippets plugin like WPCode, or a Hook element.
  • Do you want all your custom code in files, under version control? A child theme makes sense.

For me, the answer has been no on every site. The lesson I took from my old child theme is a simple one: before you add a layer to your site, know what it’s for.

Top photo: Wilfredor / Wikimedia Commons (CC0).

Sources

Leave a comment