Original Article by Philip Arthur Moore
Parent and Child Themes (Bundled Themes)
There are several WordPress themes, like the Twenty Somethings bundled theme, which can be used as WordPress default themes with elegant support for child themes. Twenty Twelve, for instance, offers a mobile design with multiple format support for posts, a clean typography and page templates that are CMS-ready. But the theme is also easy to customize in terms of inheritance.
Child themes inherit all the features of the parent themes. With clever coding, the child themes can add, change or completely remove parent functionality. This process involves setting theme defaults via WordPress filter hooks and core actions, appropriate output of styles and scripts to page headers and fallback argument modifications for template tags. Ideal parent themes should be perfect to use as they are, or easily modifiable in the back end.
This parent-child approach to WordPress theme development has a significant benefit: all that is needed is the creation of a style.css file which is located in its own folder. DIY developers can enjoy a gentle learning curve for this approach to quickly create child themes. The problem with this approach is that any changes to parent theme after launch negatively affects the child theme.
Theme frameworks are design aids to help speed up development and bring down code repetitions. They give developers great control over every design and functional aspect of a theme. At the same time, they cut down on the time spent on managing custom functions.
Theme frameworks can be incredibly complex. They can act as code libraries which help in the development of working child themes. In fact, frameworks are a great advancement over the parent-child WordPress theme development approach. Frameworks can act as parent themes, in which case they literally become ‘frameworks’ for the addition of features for a series of new themes.
They come with custom filters and actions, blurring of the boundaries between theme and plugin and even support for custom callbacks. Professional WordPress developers who use frameworks have the ability to make their themes perform any way they want for a client. Commercial WordPress theme design providers who don’t have a lot of control over the customer’s self-hosted site can also use frameworks.
But DIY WordPress users may be unable to effectively employ theme frameworks, as they can be difficult to understand and modify. Overriding a template function of file can be next to impossible with theme frameworks, unlike with bundled themes.
Another problem with frameworks is code bloat. As theme frameworks are libraries, they store all the functions that will be required in a child theme. These resources need managing so it may not be worthwhile to use frames for small projects.
Starter themes are basic themes used to start off projects. A significant distinction between starter themes and parent themes stems from the process of their development. With parent themes, any changes made have a chance of negatively affecting all the child themes that rely on the parent theme. In the case of starter themes, this problem does not exist. Therefore, it should be kept in mind that starter themes and parent themes are not synonymous, and starter themes should never be used as parent themes.
Starter themes are meant to be dynamic. They can be constantly improved. They speed up launches and improve code quality every new launch.
The problem with starter themes however is the absence of enhancement inheritance and bug fix. Therefore if an important bug fix is carried out on the canonical starter theme version, it must be manually mirrored in all the earlier versions.
Building from Scratch
If the purpose of developing your WordPress theme is not to publish directly but rather customize it for a client, then the best way to do so is to start from scratch. Here, starting from scratch implies disregarding WordPress guidelines for themes and focusing on integrating the theme into the client’s project.
For instance, WordPress.com or WordPress.org will not accept a theme with only a few template files and one stylesheet. But it could be very suitable for a WordPress-run microsite or a one-off project. An index file and a stylesheet are all that a functional theme needs. But more complex projects on a larger scale with greater demands on time, budget and administration, a starter theme may help to ground the project with greater efficiency.
Choosing a theme development process is a question of needs and skill. Each approach described here is specific to a scenario. Knowing a little about the pros and cons of each will help you make more informed decisions on your projects. Good luck!