Skip to content
ookhrimenko edited this page Jan 16, 2018 · 11 revisions

Theme Boilerplate with a modern code structure

Theme Boilerplate is a WordPress starter theme, which can be used to start the development of custom themes quickly. It will be useful in big projects with 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 separated registration of hooks and components, query logic and the templates.

File structure

Object-oriented. Code autoload

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

Folders structure helps to quickly find the small piece 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 a lot of custom templates, it's handy 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!

Template Inheritance

We added modern template inheritance system based on layouts (very similar to Laravel and Yii frameworks). Some WordPress developers call it a "Theme Wrapper". 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

We have completed our WordPress Starter with custom composer commands, which generate a theme with a custom name, namespace, and text domain.


Next: Installation

Clone this wiki locally