Skip to content

Build on Reign with a child theme

Reign Theme overviewPremiumGet Reign Theme →

Any file you edit directly inside reign-theme is overwritten the next time Reign updates, with no warning. A child theme is a separate directory that loads on top of Reign, so your changes survive updates instead of being replaced by them.

Your Customizer and Reign Settings choices are not at risk either way. They live in the database, not in theme files, so an update never touches them. A child theme is for template edits, custom PHP and anything you would otherwise put directly into reign-theme.

Go to Reign Settings > Tools. The Child theme card has a Download child theme button. It downloads reign-child-theme.zip, the latest official child theme, ready to upload. You can also get it from the child theme’s GitHub releases. It is a starter package, not a copy generated from your current site: your existing customizations already live safely in the database.

The package holds four files:

File What it is for
style.css The theme header, and the place for your custom CSS
functions.php Loads your CSS in the right order, keeps settings in step, and has a marked spot for your PHP
readme.txt Version, requirements and changelog
screenshot.png The image shown under Appearance > Themes

The same Tools screen has a System status card, which reports whether a child theme is currently active, alongside your PHP, WordPress and Reign versions. Copy it into a support ticket when you open one.

  1. Upload the downloaded zip via Appearance > Themes > Add New > Upload Theme, then activate it.
  2. WordPress takes you to Reign Settings. Your Customizer and Reign Settings choices are copied into the child theme, so the site looks exactly as before. Nothing is reset.
  3. Confirm it worked: on Reign Settings > Home, the Child theme step now reads “Your code changes survive updates”, and Reign Settings > Tools shows Child theme: Yes.

Keep the name “REIGN Child”. Reign recognises the official child theme by the Theme Name: REIGN Child line in its style.css, and only copies your settings across when that name matches. If you rename the child theme, switch to it on a staging copy first and check your settings.

Changes you make in the Customizer while the child theme is active are also saved back to Reign itself, so switching between the two themes never loses them.

Put your CSS at the end of the child theme’s style.css. The official child theme already loads that file after all of Reign’s stylesheets, so a rule of yours wins over Reign’s when both are equally specific. Edits show up straight away, because the file’s version follows its last change.

For a few quick rules you can use Appearance > Customize > Additional CSS instead.

If you write a child theme from scratch rather than using the official one, load its stylesheet the same way. Reign queues its own styles late (priority 5001), and with Smart Performance on it adds a reign-critical stylesheet that repeats its base rules. Queue yours after Reign and depend on both handles when they are present, or Reign’s base rules can override yours:

add_action( 'wp_enqueue_scripts', 'my_child_enqueue_styles', 6000 );
function my_child_enqueue_styles() {
$deps = array();
foreach ( array( 'reign_main_style', 'reign-critical' ) as $handle ) {
if ( wp_style_is( $handle, 'enqueued' ) ) {
$deps[] = $handle;
}
}
wp_enqueue_style( 'my-child-style', get_stylesheet_uri(), $deps, wp_get_theme()->get( 'Version' ) );
}

Only list handles that are queued: WordPress silently drops a stylesheet whose dependency is missing.

Your child theme’s style.css needs the standard header WordPress requires to recognise it as a child theme, including a Template: reign-theme line matching Reign’s folder name.

  • Template overrides. See template overrides for the directory rules, including the one BuddyPress-specific exception.
  • Custom PHP: new hook callbacks, filters, shortcodes. Add it at the end of functions.php, below the marked line.
  • CSS beyond a handful of rules, or CSS you want under version control.

Customizer > General > Custom Code has three fields: Tracking Code (added to the site header, for things like analytics or a Facebook Pixel), Custom JS: Header and Custom JS: Footer. Use these for small, site-wide snippets that do not need file editing or a child theme at all, and that you want a non-developer site owner to be able to find and edit later from Reign Settings rather than in code.

If a snippet grows into something with real logic, conditions, or more than a few lines, move it into the child theme instead. That keeps Custom Code for what it is meant for, and keeps anything more substantial in a file you can put under version control.

Once your child theme is active, the hooks reference and the REST API cover the extension points available to code running in it.