“Block theme” and “classic theme” gets thrown around a lot without much explanation of what actually changes for the person running the site day to day. Here’s the practical difference, not the marketing one.

Classic themes: PHP templates, the Customizer, and page builders

A classic theme is built from PHP template files โ€” header.php, single.php, page.php and so on โ€” with styling and layout mostly baked into the theme’s own code. Anything you can change visually usually goes through the Customizer, or through a separate page builder plugin (Elementor, Divi) layered on top. This is still how most custom-built, agency-made themes work, and for good reason: a developer has precise control, and the result is fast because there isn’t a generic block-editing layer sitting between the content and the output.

Block themes: everything is a block, including the layout

A block theme (technically a “Full Site Editing” theme) replaces PHP templates with HTML files made of blocks, and lets you edit the header, footer and template structure directly in the Site Editor โ€” not just the Customizer, the actual layout. Twenty Twenty-Four and Twenty Twenty-Five are both block themes. The appeal is real: a client can restructure a template without touching code or installing a page builder. The trade-off is also real: block themes are younger, documentation and plugin compatibility still lag behind the classic ecosystem, and the editing experience can feel slower for complex, highly custom layouts than a developer hand-coding PHP.

What actually changed for most site owners

  • Where you edit things. Site-wide elements like the header and footer are now editable visually in block themes, where before they required either a developer or a dedicated header/footer plugin.
  • Less reliance on page builders. A lot of what Elementor was doing โ€” visual layout control โ€” is now a native WordPress feature with block themes. That’s fewer plugins, but also a different editing experience for anyone used to a page builder.
  • Theme.json, not functions.php, for design tokens. Colours, spacing and typography scales are declared in a JSON config file rather than scattered across PHP and the Customizer. Cleaner, but a real learning curve if you’re used to the old way.

Which should you actually use?

If you want full visual control without touching code and you’re building something fairly standard, a block theme is worth it now โ€” the ecosystem has matured enough. If you need a specific, highly custom design with features a generic theme won’t offer, a hand-built classic theme (like this one) still gives a developer more precise control and, done well, a faster result. Neither is “more future-proof” than the other in any way that should decide this for you today โ€” pick based on who’s going to maintain the site after launch.