Build classic and block WordPress themes from scratch: the template hierarchy, The Loop, the_title() and the_content(), template parts, menus, the Customizer, child themes and theme.json.
Lessons
A WordPress theme is the set of template files, styles and scripts that decides how your content looks — while WordPress itself stores the content and a plugin adds features.
That split is the single most important idea in this whole path. Posts, pages, users and settings live in the database and belong to WordPress. A theme only presents them. If someone switches to a different theme tomorrow, their content must still be there, intact. Anything that would vanish with the theme — a custom post type, a shortcode, a contact form — belongs in a plugin, not in your theme.
| A theme controls | A theme should not control |
|---|---|
| Page layout, typography, colours and spacing | Custom post types and taxonomies |
| Which template renders which URL | Shortcodes your content depends on |
| Navigation menu locations and widget areas | SEO data, analytics, contact forms |
| Featured image sizes used by the design | Anything a user would lose by switching theme |
The WordPress.org theme review team enforces this rule — it is called plugin territory — and following it from day one keeps your themes portable and your clients safe.
/2026/10/hello-world/.wp-config.php connects to the database and loads core.functions.php runs.single.php.You will meet every one of those steps in this path. Steps 6 and 7 — choosing a template and printing content with tags like the_title() and the_content() — are the heart of theme development.
WordPress currently supports two kinds of theme, and this path teaches both.
| Classic theme | Block theme | |
|---|---|---|
| Templates are written in | PHP files such as single.php | HTML files of block markup such as templates/single.html |
| Design settings live in | functions.php and CSS | theme.json |
| Edited visually in the Site Editor | No | Yes |
| Best for | Learning how WordPress works, custom PHP logic, existing sites | New sites that clients edit themselves |
We start with classic PHP themes because they show you exactly what WordPress is doing. Once you understand the_title(), the block equivalent <!-- wp:post-title /--> makes immediate sense. Lessons 28 and 29 cover block themes properly.
Across this path you will build GDC Starter, a complete classic theme with a blog, single posts, pages, custom page templates, menus, widget areas, a customizer setting, translation support and a child theme. Every lesson adds to the same files, so by the end you have a theme you understand line by line.
Tip: Keep the WordPress Theme Handbook open in a tab. When this path says a function exists, the handbook is where you check its full parameter list.
In accordance with Section 6 & Section 7 of the DPDP Act 2023, third-party analytics and marketing trackers are strictly gated behind your affirmative consent. You may withdraw consent at any time under Section 6(4).
Essential for session authentication (ci_session), Cross-Site Request Forgery security (csrf_cookie_name), and Cloudflare DDoS/bot prevention. Cannot be disabled.
Gated under DPDP Section 7. Allows Google Analytics 4 (Google Consent Mode v2) to measure aggregate, anonymized tool usage.
Enables browser local storage to preserve your theme selection (dark/light mode) and code editor layout between visits.
Used to display developer sponsorships and native tool partner notices.