You ship WordPress for clients, and the block era still feels like a pile of opinions you have to argue with. This is the day it lines up into a system you can build on.
Who delivers this: Christopher Ross · WordPress developer and trainer · plugin author and senior freelance developer · 19 years shipping WordPress sites · MA Candidate, Learning and Technology, Royal Roads University
WordPress 401 is the senior day for people who write code for a living. By the end of it you will treat theme.json as a design-system contract instead of a config file you copied off a gist, you will have built and shipped a custom block with a real render path, and you will leave with a clear set of opinions on where the block tooling pays for itself and where it costs more than it returns.
Who this is for
- Fit. Agency developers and in-house WordPress devs shipping client work in 2026 who want to stop fighting blocks and start using them on purpose.
- Fit. Senior freelancers building or maintaining custom themes and plugins who want a peer-level day, not a beginner refresher.
- Fit. Plugin authors deciding whether the Interactivity API earns a place in their stack.
- Not fit. Site operators who keep client sites alive but do not write code: the updates, backups, roles, and incident calls are real work, just not this day’s work. If you can read a stack trace but you do not author themes or plugins, 301 is your day, not this one.
- Not fit. Marketing leads and content owners. You will be lost by lunch. Book 201 instead.
Prerequisites: you write PHP and JavaScript daily, you are comfortable on the command line, you have shipped at least one WordPress theme or plugin, and you know what wp_enqueue_script does without looking. That is the bar.
What you’ll be able to do after
- Read and write a
theme.jsondeliberately, across tokens, settings, styles, and per-block overrides, and know exactly when to drop to a custom-CSS escape hatch instead. - Pick correctly between block patterns, reusable blocks, and synced patterns for a given editorial workflow, without defaulting to whichever you used last.
- Build a custom block with
block.json, a working build pipeline, and arender.phpfor dynamic output, so it actually fits the rest of your codebase. - Decide, with reasons, whether the Interactivity API is the right tool for a given interaction or whether you should reach for a small bit of vanilla JS instead.
- Use FSE template parts where they earn their place and ignore them where they do not.
- Talk honestly about the performance and maintainability trade-offs of the block era with a client or a CTO who is asking the right questions.
What your manager (or technical lead) will see different on Monday
- Pull requests touch
theme.jsondeliberately, with tokens and per-block overrides, instead of dropping another override stylesheet into the build. - Custom blocks ship with a real
block.json, a working build pipeline, and arender.phpwhere the output is dynamic, not as a copy of last project’s static block with the markup edited. - The choice between a pattern, a reusable block, and a synced pattern gets named in the ticket, with a one-line reason, instead of defaulting to whichever the dev used last.
- The team can answer a client CTO honestly about where the Interactivity API earns its weight and where a fifteen-line vanilla-JS handler is still the right call.
- Estimates on block-era work start landing closer to actuals, because the team knows what FSE template parts will and won’t do on a real codebase.
The day, block by block
- Treat
theme.jsonas a design-system contract, not a file you copied off a gist. Tokens, settings, styles, and the per-block override surface. Where it replaces the work you used to do in CSS, where it complements that work, and where you still need a custom stylesheet without apologising for it. - Reach for the right reuse primitive every time instead of defaulting to last project’s. Patterns, reusable blocks, and synced patterns are three things with three jobs. Picking the right one for a content team that ships, not for a demo. Block variations and the parts of the block API editors actually touch.
- Ship a custom dynamic block end to end and take it back to your codebase.
block.jsonas the contract.@wordpress/scriptsfor the build. Static markup versusrender.phpfor dynamic blocks. Server-side rendering when it matters and when it does not. Shipping it as part of a plugin without polluting the editor. - Decide when the Interactivity API and FSE earn their weight, with numbers. Where the Interactivity API pays off and where a fifteen-line vanilla-JS handler is still the right answer. FSE template parts when they pay back, and the maintainability ceiling I have hit on real client sites. Performance budgets and the trade-offs, on screen.
Real examples we’ll work through
- A
theme.jsonrebuilt from an existing client theme, with the design tokens extracted and the overrides cleaned up. - A custom dynamic block shipped end to end (
block.json, build, server render, registered through a plugin) that you can take back to your codebase. - An honest performance comparison: an Interactivity-API implementation against a vanilla-JS one, on the same component, with the numbers on screen.
Where this fits in the WordPress training pathway
Shaped for: Agency and in-house developers shipping WordPress for clients in the block era.
From here, the most common next steps:
- WordPress Training 301, if you also own the operations side of client sites you ship.
The four WordPress courses are role-routed, not strictly sequential. Each one segments by the work you actually do on a WordPress site rather than by how long you have been around the dashboard. The full training catalogue shows how they sit alongside the Microsoft Office track.
Format, duration, and pricing
401 runs online only, over Zoom or Google Meet, with the recording sent to your team if you need it. The session is a single full day for the agency or in-house team in the room; multi-day blocks bill at the same day rate when the scope earns them.
| Format | From price (CAD) | Notes |
|---|---|---|
| Full-day (6 hours) | from $1,495 | Online; in-person within Niagara included |
| Multi-day workshop | from $2,990 | Same day rate: two days $2,990, three days $4,485 |
| 401 runs at the same single day rate as the rest of the training catalogue. The work-along pace with real models and pipelines caps group size lower than the practitioner tracks. In-person within Niagara is included in the day rate; beyond that, travel is billed at cost. For custom-data or multi-cohort engagements, tell me what you need. | ||
Currently booking through Q3 2026. One senior-track cohort per month.
Product names referenced on this page, including WordPress, Microsoft, Zoom, and Google Meet, are trademarks or registered trademarks of their respective owners. Training offered here is independent and is not affiliated with, endorsed by, or sponsored by any of these companies.
