Custom Theming
Custom themes are a way to have full control over your site design.
WordPress publishes thorough documentation on custom theme development on
their
Codex and in their
theme handbook.
Theme Types
| Type | Features | Examples | Best for... |
| Classic | -
Traditional PHP-based themes that rely on the WordPress
Customizer, widgets, and theme options for customization.
-
Uses PHP template files (e.g., header.php, footer.php, index.php)
to render different parts of a website.
-
Support shortcodes, widgets, and meta boxes for additional
functionality.
-
Use the Customizer for settings rather than full-site editing.
- Examples: Astra, GeneratePress, OceanWP.
| | Users who prefer traditional WordPress themes and developers who are
comfortable with PHP-based template editing.
|
| Block | -
Built entirely with blocks, using the WordPress Site Editor for
designing all parts of the website, including headers, footers,
and templates.
-
Use HTML template parts (header.html, footer.html) instead of PHP
template files.
-
No reliance on the Customizer, widgets, or theme
options—everything is controlled via the block editor (Gutenberg).
-
Utilize theme.json for global styles (colors, fonts, layout).
| | Users who want to make a theme without needing to edit code. |
| Hybrid | -
A mix of Classic and Block themes, allowing partial Full Site
Editing features while retaining PHP-based templating.
-
Support both customizer-based settings and block-based features
like theme.json for global styles.
-
Allow developers to transition gradually from classic themes to
block themes.
| | Users who want the flexibility of classic themes but also want to
incorporate new block-based customization options.
|
| Headless | -
This uses the WordPress admin panel for managing content, but
the frontend is rendered completely separate
-
Uses WordPress's REST API.
| | Performance, security, and developers who don't want to use older
technologies like PHP.
|
For this class, we'll be looking at hybrid themes.