Why Elayne Is Moving Its Industry Verticals Into Child Themes
A block theme that sells itself on industry patterns has a growth problem. Every new industry adds patterns, images, style variations and CSS, and every one of them ships to every site, including the ones that will never use a law firm header.
Elayne, the block theme I maintain for WordPress.org, hit that point this month. It already carries more than 120 patterns, 8 style variations and pattern sets for food and beverage, home improvement, spa and wellness, nail salons, a WooCommerce store and legal. So I stopped adding verticals to it. New industries now ship as child themes that use Elayne as the parent, and the first one, Elayne Legal 1.0.0, is public today. You can click through it in the Elayne Legal demo.
Quick Summary: Elayne stays exactly as it is on WordPress.org. The legal patterns it already bundles stay for now. From here on, each new industry is a separate child theme with its own patterns, style variations, header and footer. Elayne Legal is the first, installable from GitHub or Packagist. It is not on WordPress.org.
What was wrong with one big theme
Nothing was broken. The problem was direction. A theme that bundles every vertical gets heavier with each one, and the weight lands on people who only wanted one of them.
- Size. Every site downloads and updates patterns for industries it does not serve.
- Review. A WordPress.org theme goes through review on every release. A vertical that is still changing weekly does not fit that rhythm.
- Licensing. A vertical often wants photos. Unsplash is fine for a prototype, but WordPress.org does not accept it for shipped theme images, so a bundled vertical either ships without photos or carries a licensing risk for the whole theme.
- Focus. A law-firm design and a nail-salon design pull the shared parts of the theme in different directions.
What a vertical child theme contains
An Elayne child theme is small on purpose. Elayne keeps the base theme, the shared patterns and the WooCommerce templates. The child adds the vertical:
| Part | What it does |
|---|---|
style.css | Declares Template: elayne, so WordPress treats Elayne as the parent. |
patterns/ | The vertical’s sections and page layouts. |
styles/ | Style variations, with the fonts they need bundled in the child. |
parts/ | Its own header and footer. |
assets/ | Fonts, small CSS files per block style, and a little JavaScript where a pattern needs it. |
functions.php | Registers block styles, loads scripts only on pages that use them, and one filter explained below. |
Pattern slugs stay elayne/legal-*. While Elayne still bundles its own legal patterns, the child’s copy wins, so a site that switches to the child picks up the new design without any editing. When the bundled ones are deprecated, nothing in the child changes.
Child theme template part not rendering: the theme attribute fix
With the child active, the header would not render at first. Elayne’s template patterns hard-code "theme":"elayne" on their template-part blocks, and its compliance checker requires that attribute. WordPress only loads a part from the theme files when the attribute matches the active stylesheet. With a child theme active the stylesheet is elayne-legal, so every part failed and the child’s own parts/header.html was never reached.
The fix is a small filter in the child that rewrites the attribute at render time. Parts the child does not ship fall back to the parent’s files.
For the developers: the template-part retarget filter
This is the whole fix, from the child theme’s functions.php.
function retarget_template_parts( $parsed_block ) {
if ( 'core/template-part' === $parsed_block['blockName'] && get_template() === ( $parsed_block['attrs']['theme'] ?? '' ) ) {
$parsed_block['attrs']['theme'] = get_stylesheet();
}
return $parsed_block;
}
add_filter( 'render_block_data', __NAMESPACE__ . '\\retarget_template_parts' );
I kept the attribute in Elayne rather than loosening the parent’s rules, because the check protects the parent from real mistakes. The cost is one filter per child theme.
From prototype to child theme
Each vertical starts as a plain HTML and CSS prototype in a private repository, elayne-content. I built two legal designs there and ported the second one (compact serif type, a hero with an enquiry form, a services ticker, filterable practice areas, offices). Porting means rebuilding every section as block patterns, not copying the CSS across.
Splitting the work this way has a second benefit: prototype photos stay in the private repository. The child theme ships without photos, and the demo site uploads them as media instead. My logged time for the prototypes and the child theme was about seven hours over two days. That is an estimate, but it shows why a repeatable path matters more than a bigger theme.
Every pattern in the child passes the same checks as Elayne’s own, including the editor validation step described in the four-pass pattern validation post.
What changes for people using Elayne today
- If you use Elayne from WordPress.org, nothing changes. Updates keep arriving there, and nothing is removed.
- If you built on the bundled legal patterns, they keep working. They will be deprecated in a later release, not before Elayne Legal has settled.
- If you want the announcement in the theme itself, it is in Elayne 4.11.1, released on GitHub on October 25. The WordPress.org update follows.
- If you want a new industry, look for a child theme. There will be no new vertical pattern sets inside Elayne.
The trade-offs are real. A child theme means two installs instead of one, and Elayne Legal does not update from WordPress.org, so you update it from GitHub or Composer. The patterns are also duplicated between parent and child until the bundled legal set is retired, and Elayne Legal ships without photos, so a new site needs its own.
To try Elayne Legal, see the live demo first, then install Elayne, then add the child from GitHub or with composer require imagewize/elayne-legal and activate it under Appearance, Themes. The main Elayne page is at /themes/elayne/.
Frequently Asked Questions
- Does Elayne still work the same on WordPress.org? Yes. Elayne is unchanged and keeps receiving updates there. Only the plan for new industries has changed.
- Is Elayne Legal on WordPress.org? No. It is a public child theme installed from GitHub or Packagist, and it needs Elayne installed as the parent theme.
- Will the legal patterns inside Elayne be removed? Not yet. They stay for now and will be deprecated in a later release, once Elayne Legal is established.
- Why not just keep adding verticals to Elayne? Every vertical makes the theme larger for every site, slows each WordPress.org review and puts photo licensing on the whole theme. A child theme keeps each industry separate.
Need Help with a Block Theme or FSE Build?
We build and debug WordPress block themes — full-site editing templates, pattern libraries, Site Editor workflows, and the WP-CLI plumbing that keeps them deployable. Fixed-price quotes and ongoing support available.
- FSE block theme builds and migrations from classic themes
- Block pattern libraries and Site Editor template work
- Pattern validation, debugging, and WP-CLI deployment workflows
- WooCommerce on block themes — single product, shop, and archive templates