The theme framework you’ve built will be used as a parent theme in the sites you develop. This means that in each case you’ll need to create a child theme to create a unique site with its own design and with extra or different functions compared to the framework.
The obvious way to go about this is to dive in and start creating template files in your child theme to override those in the framework, but thanks to the action and filter hooks you’ve added to your framework, this might not always be the best approach.
In this article, I’ll outline some of the techniques you can use in your child themes to make best use of your framework and improvise your workflow.
The topics I’ll cover are as follows:
Creating starter child themes
Amending code via the framework’s filter hooks
Adding code via the framework’s action hooks
Creating template files in your child theme
When to use a plugin instead
Creating Starter Child Themes framework
The main purpose of developing your theme framework is to adopt the DRY (Don’t Repeat Yourself) principle, and that applies to your child themes, too.
It can make you more efficient if you create one or more ‘starter’ child themes for use with your framework, which contain the core code you need to get started on new projects.
When deciding how to go about doing this, consider the way you work and the sites you build:
Do you create a lot of sites for clients in the same sector with similar needs?
Do you want to offer low cost template based sites to smaller clients?
Are there specific template files you tend to create for most of your new projects?
Is there functionality you need to include on some sites but not others? (For example, I use two starter child themes, one with comment functionality and one without.)
Is there styling you tend to use for most projects, or can you use object oriented styling or a CSS preprocessor for most projects?
Are there libraries or resources you use for most new projects, or for a significant proportion of them?
Do you have two or three main categories you can place projects under, with each category involving similar development work?
If you’ve answered yes to any of these questions, then developing one or more starter child themes may save you time. You can create a set of child themes with the basic code that you repeat across all projects using them, and then you don’t need to rewrite that code (or create those files) for each new project.
Note on caveat: If you’re adding some code to every single new project, you may want to add it to your framework instead of to child themes, maybe by using a hook so you can override it if a different need arises in the future.
Even if you answered no to the questions above, it’s worth creating a very basic starter theme with an empty stylesheet and functions file, and adding the instructions WordPress needs to access your framework’s parent theme .
You might also want to create a starter functions.php file with the functions you most frequently use in your child themes. You can then choose to remove any of these and/or add to them for specific projects.