So, you’re starting a website and someone has convinced you that WordPress is the smart way to go. Now you’re presented with all these confusing choices: themes, frameworks, parent themes, child themes.
Whether you’re just beginning your lucrative career as a WordPress developer or just want to educate yourself as a user, the following breakdown should lift that proverbial theme cloud.
A WordPress Theme is the design or appearance of your website and takes advantage of the core technology a standard WordPress installation has to offer. A Child Theme is a separate theme that inherits the functionality of another theme, called the Parent Theme, and allows you to modify that parent theme to your hearts content.
A WordPress Framework is like a theme on steroids but they can indeed be a bit confusing as they have two, albeit similar, meanings:
- A code library on top of the WordPress core functions and filters that allow developers to create child themes much faster than usual. These code libraries are included with a default theme (however, sometimes the framework requires you to create a child theme and then activate the framework within that child theme) and cannot be used without it.
Examples: Hybrid Core, Genesis
- A base or starter theme which generally requires heavy customization.
Code library frameworks (1) are great for developers who create a lot of similar-style sites as they usually provide custom functions, action hooks, filter hooks, options pages, callbacks for core WordPress action and filter hooks, and script libraries to facilitate theme creation. This allows the developer to swap in and out certain elements without having to code from scratch.
For more involved, unique, and custom sites, developers will usually choose to code a theme from scratch or use a starter theme (2) as using a code library framework may be overkill (unneeded options pages, hooks, completely different layout markup, etc.) and/or need too much customization to be worth the effort.
And to blend the differences even further, sometimes developers choose to use both a theme framework (1) and a starter theme (2). The framework allows for easy feature additions and the starter theme allows for faster theme development.
Technically, any stand-alone theme can act as such a framework, since any stand-alone theme can be used as a parent theme template for child themes. However, some stand-alone themes are designed specifically to be used for this purpose. Such themes can be used as-is, but may lack CSS styling or other finishing elements of site design, since such elements are intended to be added by the child theme, or in the forked/derivative theme. —WordPress Codex
At wpdev.co, I prefer to work with one of two options: a code library framework (The Genesis Framework by StudioPress) or a light framework and custom starter theme developed in-house called PHNX (phnx.io). Which to use, is based on the overall needs, budget, and future plans of the client.