Skip to content
Alex Prokopenko edited this page Jan 9, 2018 · 11 revisions

Theme Boilerplate with a modern code structure

Theme Boilerplate is a WordPress starter theme, which can be used for custom themes rapid development start. It's highly recommended for big projects (several unique templates, long-scroll landing pages, Custom Post Types and custom queries).

This theme requires a plugin WordPress Theme Framework. Theme Framework consists a base code, which can be used to create your very own theme.

Better file structure

The organization of a theme is very similar to a modern PHP Frameworks. We totally separated registration of hooks and components, query logic and the templates.

File structure

OOP, Autoload

Main code is written with classes, using best practices of inheritance and incapsulation. Autoload technique helps to load only classes we need for particular page (faster loading).

Folders structure helps to quickly find the small peace of code you need to write or update.

Improved Templates Structure

All templates are now grouped by post type (like page or post) or by section (like search, widgets). When you develop a big site with lot of custom templates it's extremely useful to find the correct template.

Furthermore, folders grouping does not break standard WordPress Template Hierarchy. You can use all the same template names as you usually do. Just place them in a post-type-related folder!

Theme Wrapper

We added modern template inheritance system based on layouts (very similar to Laravel and Yii frameworks). In WordPress this feature is called a "Theme Wrapper" technique. Markup is handled by one layout file (or more if needed) instead of being scattered across all template files like typical themes. Stay DRY!

Security and optimizations

Theme files are nice and clean, but Theme Framework has a lot of hooks to make your WordPress more secure, clean up and optimize final generated HTML.

Boilerplate-based theme generator

As a part of WordPress Starter we have custom composer commands, which generates a theme with a custom name, namespace and textdomain.


Next: Installation

Clone this wiki locally