Do you need one?
Usually not. Changes you make in the Site Editor (styles, templates, headers, footers) are saved in your site’s database, not in the theme’s files, so theme updates don’t overwrite them.
A child theme is worth it when you want to:
- keep custom CSS, templates or patterns in files, under version control
- add PHP: filters from the hooks reference, your own patterns or block styles
- ship the same customizations to several sites
For PHP alone, a small plugin works just as well and doesn’t depend on the theme.
Get the ready-made child theme
Download cartavera-child.zip from your wpruby.com account, next to the Cartavera download. Keep Cartavera installed, then upload the child theme under Appearance → Themes → Add New → Upload Theme and activate Cartavera Child.
It contains exactly the files described below: style.css, a functions.php that loads it after Cartavera’s styles, an empty theme.json, and a screenshot. Start adding your changes from there.
Create a child theme by hand
If you’d rather build it yourself:
- Make a folder
wp-content/themes/cartavera-child. - Add
style.css:
/*
Theme Name: Cartavera Child
Template: cartavera
Version: 1.0.0
Text Domain: cartavera-child
*/
Template must match the folder name of the parent theme, cartavera.
- Add
functions.php:
<?php
defined( 'ABSPATH' ) || exit;
// Cartavera loads its own styles; load the child's stylesheet after them.
add_action( 'wp_enqueue_scripts', function () {
wp_enqueue_style(
'cartavera-child',
get_stylesheet_uri(),
array( 'cartavera-theme' ),
wp_get_theme()->get( 'Version' )
);
} );
- Add
theme.json(it can start almost empty):
{
"$schema": "https://schemas.wp.org/wp/6.7/theme.json",
"version": 3
}
- Zip the folder (or upload it by FTP) and activate Cartavera Child under Appearance → Themes. Keep Cartavera installed: the child theme needs it.
What the child theme can change
| To change | Add to the child theme | How it works |
|---|---|---|
| Colours, fonts, spacing, layout | theme.json |
Merged with Cartavera’s: list only what you change |
| A template | templates/<name>.html (same name as Cartavera’s, for example single-product.html) |
Replaces Cartavera’s copy |
| The header or footer | parts/header.html, parts/footer.html |
Replaces Cartavera’s copy |
| New patterns | patterns/<name>.php with a pattern header |
Registered automatically, next to Cartavera’s |
| CSS | style.css (with the functions.php above) |
Loaded after Cartavera’s styles |
| Behaviour | functions.php |
Runs before Cartavera’s functions.php |
For example, to make buttons rounder and the accent colour a deep green, the child’s theme.json only needs:
{
"$schema": "https://schemas.wp.org/wp/6.7/theme.json",
"version": 3,
"settings": {
"color": {
"palette": [
{ "slug": "accent", "color": "#1f7a4d", "name": "Accent" }
]
}
}
}
Be careful with the palette: a palette in the child replaces the parent’s whole palette, so copy all of Cartavera’s colours from its theme.json and change the ones you need. Check contrast for any colour you change; see Styles.
Things to know
- Copy, then change. To override a template, copy it from Cartavera’s
templates/folder and change the copy. Cartavera’s templates hold no text of their own: they reference patterns (“). Keep those references and your template stays translatable; see Translation. - Site Editor changes still win. A template or part you’ve edited and saved in the Site Editor is stored in the database and is used instead of both the parent’s and the child’s file. Reset it (⋮ → Reset) to use the file.
- Updates and the licence stay with Cartavera. Activate your licence under Appearance → Cartavera as usual. Cartavera itself keeps getting updates while the child theme is active, and your child theme’s files are never touched by them.
- Style variations: Cartavera’s style variations are still offered with a child theme active. A child theme can add its own in a
styles/folder. - Use your own prefix for functions and pattern slugs (for example
cartavera-child/…), so they never clash with Cartavera’s.