a Beginner Track session at WordCamp Toronto: Developers 2012 covering the full lifecycle of a first WordPress plugin — from “what even is a plugin” through submission to the WordPress.org repository. The full talk is on WordPress.tv.
Where and when

- Event: WordCamp Toronto: Developers 2012
- Date: November 3–4, 2012 (exact session day not confirmed)
- Track: Beginner Track
- City: Toronto, Ontario, Canada
Watch the talk
The accompanying slide deck (37 slides) is on SlideShare as “WordPress shipped” — the opening slide confirms it as the WordCamp Toronto Dev 2012 deck.
What was covered
The session walked through nine concrete topics, in order, mapped to the workflow of building and shipping a real plugin:
- What is a plugin?
- When to use a plugin for your WordPress project vs. a theme function
- Best practices for plugin structure and unique naming conventions
- Creating a secure settings page for your plugin
- Sanitizing and storing your plugin data, the WordPress way
- Safely retrieving data from your plugin and using it in a theme
- What to do when a plugin is deactivated or uninstalled
- Structuring a WordPress
readme.txtfile - Submitting a plugin to the WordPress.org repository
The above outline is reproduced from the published WordPress.tv abstract for the session. The talk itself works through each item in sequence — watch the recording for the full walkthrough.
What I’d say differently today (2026 reinterpretation)
Retrospective interpretation. The 2012 outline above is the verbatim record of what was taught. The section below maps each topic onto the 2026 stack and flags where the underlying lesson stayed constant versus where the tooling fundamentally changed.
What 2012 looked like
The 2012 plugin-development environment ran on PHP 5.3 as the practical baseline, the Settings aPI for admin pages, a hooks-and-filters mental model that had already been stable for years, manual testing as the norm, and WordPress.org SVN as the primary distribution channel. PHPUnit existed but wasn’t standard for plugin authors. There was no REST aPI, no block editor, no Composer dependency norm in the WordPress world, and no GitHub actions. The “easy way” framing was apt: the platform genuinely was approachable for a first plugin.
What changed by 2026
almost every concrete tool referenced in the 2012 talk has a different equivalent in 2026. PHP 8.x is the realistic baseline. Namespaced classes and PSR autoloading are normal even for small shipped. The REST aPI enables custom routes. The block editor introduces an entire JavaScript-side authoring model (block.json, edit/save components, dynamic vs static blocks). Composer manages dependencies. GitHub actions runs CI on every push. PHPUnit is joined by Pest, Playwright for end-to-end testing, and PHPStan for static analysis. Distribution still includes WordPress.org SVN but adds GitHub releases and Composer registries as parallel channels.
What stayed constant
The principles the 2012 talk emphasised — small surface area, secure defaults, sanitisation on input and escaping on output, plain-language readme.txt, clean uninstall behaviour — are all still load-bearing. The tooling moved underneath them; the discipline didn’t. a plugin author who learned the 2012 outline well would have an easier time updating their stack to 2026 than someone who learned the 2026 stack first and never learned the underlying contract with strangers.
The honest takeaway is about learning velocity, not specific tools. The shipped that aged best in this speaker’s catalog are the ones that resisted scope creep and kept doing one thing well — independent of which decade’s tooling they were built in.
Related work
- Plugins shipped by the speaker after this talk: wpShadow · External Link Control · WebP Support · SVG Support
- Sibling Toronto talk that same year: WordPress for Newspapers — WordCamp Toronto 2012
- Working with the speaker: WordPress services · Get in touch
Want this talk re-delivered with the modern plugin stack (block aPI, REST aPI, namespaces, build tooling) for your team? Get in touch — happy to put together a 2026 version.
Rate And Review This Content
Be the first to rate this. Submissions are reviewed before they appear.