Home » Templates

Templates

Boilerplate templates follow the normal WordPress theme structure: vanilla PHP files, WordPress template hierarchy conventions, shared layout partials, and reusable post partials. The theme intentionally avoids heavier templating engines such as Twig or Blade in favor of the KISS method.

Template Philosophy

Use normal WordPress PHP templates. Boilerplate keeps template behavior congruent with how classic WordPress themes are normally organized so developers can rely on familiar WordPress conventions, override files predictably in child themes, and avoid an extra abstraction layer.

Use this for: maintainable theme development, straightforward child theme overrides, easier onboarding, and compatibility with normal WordPress expectations.

Page Templates

Page templates handle standard WordPress page output and should stay focused on page-specific behavior. Shared wrappers belong in layout partials.

Primary file: page.php

Use this for: normal WordPress page rendering and child-theme page template overrides.

Single Post Templates

Single post rendering is handled by the standard single template. Boilerplate keeps post article markup, tools, and comments split into partials where appropriate.

Primary file: single.php
Related partials: partials/posts/article_single.php, partials/posts/tools.php, comments.php

Use this for: single post structure, post tools, comments integration, and child-theme single post overrides.

Archive Templates

Archive templates handle date-based archives and other archive-style listing views. Listing output is delegated to the shared loop partial.

Primary file: archive.php
Related partial: partials/posts/loop.php

Use this for: date archives, archive headings, and standard archive listing behavior.

Category / Tag / Author / Date Support

Boilerplate includes standard taxonomy and author archive templates so common WordPress listing pages behave predictably.

  • category.php – category archive output
  • tag.php – tag archive output
  • author.php – author archive output
  • archive.php – date archive output

Related partial: partials/posts/loop.php

Use this for: WordPress-native archive pages without custom routing or a separate templating system.

Search Template

The search template handles search result pages and delegates repeated result output to the shared post loop and summary partials.

Primary file: search.php
Related files: searchform.php, partials/posts/loop.php, partials/posts/summary.php

Use this for: search result pages, empty search handling, search result summaries, and child-theme search customizations.

404 Template

The 404 template renders the not-found page using the same shared layout wrapper as the rest of the theme.

Primary file: 404.php

Use this for: not-found messaging, custom 404 content, and child-theme 404 overrides.

Loop Partial

The loop partial owns repeated listing behavior. Archive, index, category, tag, author, and search templates should reuse this instead of duplicating loop markup.

Primary file: partials/posts/loop.php

Use this for: shared post listing behavior and pagination integration.

Summary Partial

The summary partial owns repeated post-card/listing output for archive-style views. Keep summary markup here instead of repeating it across individual templates.

Primary file: partials/posts/summary.php

Use this for: archive cards, search results, excerpt output, post type badges, thumbnails, and listing-level post metadata.

Layout Partials

Templates should use shared layout partials for global page structure. This keeps wrappers, navbar/header/content/sidebar/footer structure out of individual template files.

  • partials/layout/top.php – opens the shared layout
  • partials/layout/bottom.php – closes the shared layout

Use this for: shared page chrome and consistent template structure.

Child Theme Overrides

Child themes may override templates and partials by providing matching files where WordPress and get_template_part() will resolve them. Prefer overriding the smallest practical file.

Example: override partials/posts/summary.php for listing card changes instead of copying every archive template.