Going further
Child theme and code
This page is for people who change code. You do not need any of it to build a site with Kurato.
Small style changes#
For a few lines of CSS, use Appearance > Customize > Additional CSS. This CSS is kept when you update the theme, and you do not need the child theme for it.
To change colors, use the Customizer settings instead of CSS. They change both modes correctly. See Colors and mode.
The child theme#
Install it as described in The child theme. It holds three files:
style.css: your CSS. It loads after Kurato's own styles.functions.php: your PHP. It already loads the child stylesheet and the child's own translations.screenshot.png: the image on the Themes screen.
When you update Kurato, the child theme is not touched.
Override a template file#
Copy a file from kurato/ to the same place in kurato-child/, then change the copy. WordPress uses the child's copy. You can override:
- The main templates:
404.php,archive.php,home.php,index.php,page.php,search.php,single.php,single-kurato_project.php,archive-kurato_project.php,taxonomy-kurato_project_type.php,comments.php,header.php,footer.php, andsidebar.php. - The parts in
template-parts/:content/,header/,footer/, andproject/. For example,template-parts/project/layout-film.phpis the Film project layout. - The two page templates in
page-templates/.
A copied file keeps the old code when Kurato updates. Copy only the files you need, and compare them with the new version after each update.
Override a section#
To change the markup of one section, put a file at kurato-child/kurato-core/sections/<name>.php. For example, kurato-core/sections/quote.php replaces the Pull quote section. Start from a copy of the section's own file, wp-content/plugins/kurato-core/sections/quote/render.php.
Elementor keeps a saved copy of each widget's output. After you add or change an override, go to Elementor > Tools and click Clear Files & Data, or pages built with Elementor still show the old markup.
Override a function#
Most theme functions are wrapped in if ( ! function_exists() ). Define a function with the same name in the child theme's functions.php, and Kurato uses yours.
Hooks#
Actions#
| Action | Runs |
|---|---|
kurato_before_header | Before the header. It runs even when the header is hidden. |
kurato_header_hidden | Instead of the header, on a page that hides it. |
kurato_after_header | After the header and the menu, before the content. |
kurato_hud_controls | In the header bar, before the mode button. A good place for a language switcher. |
kurato_before_footer, kurato_footer_hidden, kurato_after_footer | Around the footer, the same way as the header. |
kurato_before_post_content, kurato_after_post_content | Around the text of a post. |
kurato_before_project, kurato_after_project | Around a single project. They receive the layout: film or gallery. |
For example, this adds a line before the footer:
add_action( 'kurato_before_footer', function () {
echo '<p class="my-note">Represented by North Quay Gallery.</p>';
} );
Filters#
| Filter | Changes |
|---|---|
kurato_social_networks | The list of social networks in the Customizer. |
kurato_html_classes | The classes on the <html> element. |
kurato_hides_part | Whether the header or footer is hidden on this page. |
kurato_page_opens_with_section | Whether a page that starts with a section is drawn full width. |
kurato_shop_rows_per_page | How many rows of products a shop page holds. The default is 4. |
kurato_core_project_labels | The names "Project" and "Projects" in the admin, for example "Series". |
kurato_core_share_networks | The share networks offered. |
kurato_core_sections | The list of sections. |
Turn off smooth scrolling in code#
The setting is in Motion settings. In code, the smooth scrolling library is loaded under its own handle, lenis, so a child theme can remove it with wp_dequeue_script( 'lenis' ).
Kurato 1.0.0 documentation, updated 2026-10-03. Online at kurato.jawad.work/docs/.