Skip to main content
Vara SaaS is a classic PHP theme. WordPress picks the right template using its standard hierarchy, and each template is a plain PHP file you can copy into a child theme and edit.
Never edit these files in the parent theme. Every change is lost on the next update. Copy to a child theme at the same relative path instead — see Child themes.

The hierarchy

WordPress selects a template for each request in this order. The first match wins. Screenshot: a diagram of the WordPress template hierarchy as used by Vara SaaS

Core templates

What each template does in detail

header.php

Loads template-parts/head.php, outputs <body>, runs wp_body_open(), renders the skip link, opens the #vara-saas-site wrapper, prints the site header markup, and opens <main id="site-content">.
The skip link target is #site-content. If you override this template and change that id, update the skip link too, or keyboard users lose their main-content shortcut.
Closes </main>, opens <footer>, renders template-parts/footer-widgets.php, closes the site wrapper, and runs wp_footer().
Overrides must keep tags balanced. header.php opens <main> and footer.php closes it. A mismatch produces two main landmarks, or unbalanced HTML — see Missing header or footer.

front-page.php

The most conditional template. It resolves at runtime:
  1. If Settings → Reading shows your latest posts → renders the blog index inline
  2. If a static front page is set and it is builder-owned with content → renders content alone
  3. Otherwise → renders the six default sections
front-page.php calls template-parts/head.php and template-parts/header-nav.php directly rather than get_header(). If you override it, preserve that structure.

single.php

The most feature-dense template. Renders category pills, title, excerpt, byline, featured image, table of contents, content, tags, related posts, and comments. See Single post settings.

page.php

Renders breadcrumbs, an optional title, content, comments, and an optional sidebar. Steps aside entirely on builder-owned pages.

index.php

The last-resort fallback: a container, an optional sidebar, and a plain post list.
index.php uses an h1 for every post title, which is inconsistent with every other template in the theme — those correctly use one h1 in the hero plus h2 and h3 in cards. It rarely renders, but if you build a child theme, correcting it is a worthwhile accessibility fix.

template-parts/

Reusable components. Copy any of these into your child theme at the same path to override.

Structure

header.php contains its own copy of the header markup rather than including header-nav.php. The two are near-identical but separate files, so a change to one does not affect the other. If you override either, check whether the other also needs updating.

Blog

Default front-page sections

footer-widgets.php declares a helper function inside the template. PHP will redeclare it on every footer render path. It works, but if you override this file, keep that function guarded or move it to functions.php in your child theme.

inc/

Do not copy inc/ files into a child theme to “update” them. They are loaded by the parent theme’s functions.php. Use the filters on the next page instead.

How to override a template

1

Create a child theme

If you have not already. See Child themes.
2

Copy the file to the same relative path

For example single.php goes in wp-content/themes/your-child-theme/single.php.
3

Edit your copy

Make one change at a time.
4

Test

View that page type, plus your header and footer.
Template overrides are complete replacements, not merges. If your copy omits get_footer(), the footer disappears. If you omit the loop, no content renders. Diff your copy against the original after editing.

Prefer filters where available

Most of what you would override a template for is already filterable. See Hooks and filters.
Do not open a second <main>. get_header() already opened <main id="site-content">.

Child themes

The mechanics of overriding.

Hooks and filters

Prefer these where they exist.