The hierarchy
WordPress selects a template for each request in this order. The first match wins.
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">.
footer.php
Closes </main>, opens <footer>, renders template-parts/footer-widgets.php, closes the site wrapper, and runs wp_footer().
front-page.php
The most conditional template. It resolves at runtime:
- If Settings → Reading shows your latest posts → renders the blog index inline
- If a static front page is set and it is builder-owned with content → renders content alone
- 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.
template-parts/
Reusable components. Copy any of these into your child theme at the same path to override.
Structure
Blog
Default front-page sections
inc/
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.
Prefer filters where available
Most of what you would override a template for is already filterable.
See Hooks and filters.
