Extensions package substantial optional behavior so a website can select useful capabilities without turning Plugin Framework core into a permanent collection of unrelated opinions.
Every extension is disabled by default. Enabling one loads its component. Where additional controls are provided, those controls begin off and determine which behavior actually runs; the settings-free Special Characters extension provides its editor tool as soon as the extension itself is enabled.
| Extension | Current purpose |
|---|---|
| Content Formatting | Optional saved- and displayed-content normalization, including a separately controlled automatic-paragraph policy that protects preformatted and executable elements. |
| Editor Blocks | An administrator-managed Gutenberg block allowlist for normal post editors while preserving required structural dependencies and existing content. |
| Email Control | Registered plain-text transactional email definitions, supported WordPress account-message adaptation, safe previews, and WooCommerce email awareness. |
| Frontend Account Access | Frontend login, registration, password recovery, logout, account links, redirects, blocks, shortcodes, and optional modal access. |
| Security Controls | Optional restrictions for anonymous core REST access, Application Passwords, XML-RPC, and WordPress core sitemaps. |
| Special Characters | A Gutenberg rich-text toolbar picker that inserts a curated catalog of literal Unicode characters without frontend assets or wrapper markup. |
| Term Ordering | Administrator-managed sibling ordering for selected hierarchical taxonomies, with optional administration, editor, and frontend query integration. |
| WooCommerce Controls | Optional WooCommerce asset, catalog, product, checkout, account, membership, and supported payment presentation or flow controls. |
| WordPress Branding | Selected login, admin bar, admin footer, and editor presentation adapted to the current site identity. |
| WordPress Cleanup | Selected dashboard, editor, profile, media-size, discovery, and frontend cleanup while leaving each control disabled until chosen. |
Designed to Remain Independent
Disabled Means Inactive
A disabled extension registers no settings tab, runtime hooks, stylesheets, scripts, or public output. Optional integrations remain dormant when their required platform is unavailable.
Settings Stay Scoped
Extension state and settings remain nested beneath the framework option, preserve unrelated values during saves, and remain stored if an extension is temporarily disabled.
Selection Requires Context
Some controls affect authentication, remote clients, editor choices, customer workflows, generated media, or stored content. They are intended to be enabled after the website's integrations and operational needs have been reviewed—not as a universal preset.
Why not make every feature an extension?
An extension is useful when several related behaviors form one meaningful optional capability. Small permanent infrastructure remains in framework core, while business rules tied to one website remain in that site's plugin.
Can a site add its own focused behavior?
Yes. A site-specific plugin can build its own integration or capability while using the same framework services and ownership patterns. Reusable behavior moves into framework core or an included extension only when it genuinely serves multiple projects.