KuratoDocumentation

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, and sidebar.php.
  • The parts in template-parts/: content/, header/, footer/, and project/. For example, template-parts/project/layout-film.php is the Film project layout.
  • The two page templates in page-templates/.
Copies do not update

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#

ActionRuns
kurato_before_headerBefore the header. It runs even when the header is hidden.
kurato_header_hiddenInstead of the header, on a page that hides it.
kurato_after_headerAfter the header and the menu, before the content.
kurato_hud_controlsIn the header bar, before the mode button. A good place for a language switcher.
kurato_before_footer, kurato_footer_hidden, kurato_after_footerAround the footer, the same way as the header.
kurato_before_post_content, kurato_after_post_contentAround the text of a post.
kurato_before_project, kurato_after_projectAround 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#

FilterChanges
kurato_social_networksThe list of social networks in the Customizer.
kurato_html_classesThe classes on the <html> element.
kurato_hides_partWhether the header or footer is hidden on this page.
kurato_page_opens_with_sectionWhether a page that starts with a section is drawn full width.
kurato_shop_rows_per_pageHow many rows of products a shop page holds. The default is 4.
kurato_core_project_labelsThe names "Project" and "Projects" in the admin, for example "Series".
kurato_core_share_networksThe share networks offered.
kurato_core_sectionsThe 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/.