Generated from the code

The Minn API

Every class under src/Minn/, read by reflection: 803 classes in 28 namespaces, 4028 public methods and 1857 internals. Signatures are the code's own; the prose is each class's docblock. A namespace page lists the public surface; a class page has everything, down to the source of each method. The engine regenerates this whenever the code changes, and its style suite fails when it has not.

Minn 8

The root namespace: the front door, the autoloader, the one database door, the REST error. Every other namespace sits one level below it.

ClassKindMethodsSummary
Autoloaderfinal class1PSR-4 for the Minn namespace: Minn\Http\Request lives at src/Minn/Http/Request.php.
Contextfinal readonly class4One request, as a value: the database door, who is asking, what they
Dbfinal class27 +2The one door to the database. Every query is a prepared statement; the
Enginefinal readonly class2 +8The engine's front door. An unmodified wp-config.php ends by requiring
Htmlfinal class11HTML, the front door for escaping and cutting markup: plain static calls,
Httpfinal readonly class8 +8Outgoing HTTP, a client handed to the code that uses it. An extension
Jsonfinal class6 +2JSON in and out, for the engine and for code written for Minn:
RestErrorfinal class5A WordPress-shaped error, thrown from anywhere and rendered once by the

Minn\Admin 41

The minn-admin/v1 namespace and serving the Minn Admin app.

ClassKindMethodsSummary
ActivityChartfinal readonly class2The overview's activity chart: published posts and pages plus every
ActivityFeedfinal readonly class5 +4What happened lately, as the overview and the bell tell it: the caller's
AdminArgsfinal class0The arguments Minn Admin's own routes register, as the reference lists
AdminMenufinal class4The admin menu's arithmetic, as plugins' menu calls see it on the
AdminNoticefinal class1An admin notice's markup, as wp_get_admin_notice builds it on the
AdminPluginfinal class5 +1Minn Admin's home on a site is wp-content/plugins/minn-admin: the same
AdminTypesfinal class6Admin-facing type facts (viewable, labels, supports, the edit gate) live
Appfinal readonly class8The Minn Admin app on disk the engine serves the shell and assets from:
AppControllerfinal readonly class2 +3Serves Minn Admin from the engine: the path-routed shell (every
Appearancefinal readonly class4A person's Minn Admin appearance: the colour scheme and its custom
BootPayloadfinal readonly class3 +6The window.MINN boot payload, assembled from the engine: the keys app.js
BundleControllerfinal readonly class4 +1What the app bundle answers for: the user guide it carries, the
CodeEditorfinal class1 +2The code editor's settings as wp_get_code_editor_settings gives them
Dashboardfinal readonly class4 +9The overview payload: stat cards, the activity chart, and the recent
EditorControllerfinal readonly class2The editor's edit lock in minn-admin/v1. Its template and pattern lists
Formatfinal class4The dashboard's number, size, age, and title formatting.
HiddenIntegrationsfinal readonly class5What a person hid from their own Minn Admin: the app's per-user map
IframeMarkupfinal class5The fixed markup of the two bare admin documents plugins print into, as
LanguageChoicesfinal class1 +1The language picker's markup. English always leads the list and carries the
LanguageControllerfinal readonly class5 +2Languages: what is installed, what a person reads in, what the site defaults to.
LegacyPackControllerfinal readonly class1 +1The Minn Legacy Pack installed for an editor that needs it
MetaBoxMarkupfinal class1 +1A meta box's frame as do_meta_boxes prints it on the reference (probe
MetaBoxesfinal class2One screen's meta boxes as add_meta_box files them on the reference
Notificationsfinal readonly class2 +7The bell feed: pending and recent comments, translation offers and a
OverviewControllerfinal readonly class4 +5The Overview of minn-admin/v1: the payload, the drill-down behind one
PackagesControllerfinal readonly class8 +2Adding and removing themes and extensions from the Extensions view.
PostListMarkupfinal class2The markup a post list writes beside each post, as the reference writes
PreferencesControllerfinal readonly class8 +5A person's own settings in minn-admin/v1: their appearance, the views
RenderControllerfinal readonly class2 +1The editor's island previews: block markup rendered by the same
ScreenOptionsfinal class2Which screen option a save keeps for itself, as set_screen_options tells
SessionsControllerfinal readonly class3 +1A person's sign-in sessions, read from the same session_tokens store
SiteControllerfinal readonly class4 +1The small Settings-view routes of minn-admin/v1: the site logo, the
SiteHealthTestsfinal class2The Site Health screen's tests as the reference lists them (probe
StructureControllerfinal readonly class3 +4The Structure view of minn-admin/v1: post types, taxonomies, and the
SubmitButtonfinal class1 +1A settings form's submit input as get_submit_button builds it: "button"
SystemControllerfinal readonly class9The System view: diagnostics, the scheduled-post list, autoloaded options, and the logs.
ThemesControllerfinal readonly class2 +3The theme inventory of minn-admin/v1: every theme on disk with its
Translationsfinal readonly class9 +5Languages for the admin. A person's locale is their `locale` user meta,
UpdatesControllerfinal readonly class7The minn-admin/v1 update routes: offers, directory meta, the check, the installs, the auto-update lists.
UploadsSizefinal readonly class2 +3How much the uploads folder holds, as Minn Admin 0.43 works it out and
V1Controllerfinal readonly class5 +1The boot burst of minn-admin/v1: the bell feed and its read marker, the

Minn\Auth 20

Passwords, sessions, cookies, nonces, roles and capabilities.

ClassKindMethodsSummary
ApplicationPasswordsfinal readonly class10 +4Application passwords as the reference stores them: a serialized list in
AuthCookiesfinal readonly class7The three cookies a sign-in sets: the auth cookie on the admin and
AuthFailurefinal readonly class3Why a request is not authenticated, as the reference's error code: a
Authenticatedfinal readonly class1A validated session: the user row and the raw session token behind it.
Authenticatorfinal readonly class9Resolves the current user two ways. A page load carries the cookie alone;
Canfinal class4Whether a user may do something, as WordPress decides it: the capability
Capabilitiesfinal readonly class7 +7The capability engine: a user's roles from {prefix}capabilities usermeta,
Cookiefinal readonly class7 +1The sign-in cookies: username|expiration|token|hmac, with
FastHashfinal class3The reference's hash for high-entropy secrets ("$generic$", WordPress 6.8
LoginThrottlefinal readonly class4 +2Failed sign-ins per address, so a password guesser meets a wall: twenty
Noncefinal class5The wp_rest nonce: ten characters of HMAC-md5(tick|wp_rest|uid|token)
Passwordfinal class4 +1The stored password scheme. A modern "$wp$2y$..." value is bcrypt over
PasswordResetfinal readonly class4 +2Password reset keys in the reference's storage shape: user_activation_key
PortableHashfinal class6The portable phpass hash ("$P$"), from the published algorithm: an
RegisteredCapsfinal class2The capability names a plugin's post type or taxonomy registered, read
Rolesfinal class5Role definitions from the site's {prefix}user_roles option, parsed by a
Saltsfinal class4 +2The site's own secret material, read from the constants wp-config.php
Sessionsfinal readonly class10 +5The session_tokens usermeta store: {sha256(token): {expiration, ip, ua,
SignInfinal readonly class8 +1The door itself: what a sign-in surface needs beyond checking a
TypeCapabilitiesfinal readonly class7The capability names a post type's permissions are built from. Posts and

Minn\Blocks 23

The block parser and renderer.

ClassKindMethodsSummary
Attributesfinal readonly class1The JSON object a block delimiter carries, read in place. Rewriting one
Bindingsfinal class3 +4Block bindings (probe block-bindings): a block attribute bound to a
Blockfinal readonly class6One parsed block. A null name is freeform HTML between blocks. The
BlockNamefinal class1The block name rules: a string, lower-case, `namespace/name`.
BlockStreamfinal class18 +7Block markup read one token at a time, as the reference's streaming
Contextfinal class9What the template blocks render against: the resolution, the main
CoreBlocksfinal class2The core block types' metadata as the reference registers them
Duotonefinal class2 +2Duotone filters (probe block-supports): a CSS color read into its red,
Elementsfinal class3 +2Per-block element styles (style.elements in a block's attributes, the
ImageTagsfinal readonly class7 +20The attributes the reference adds to an <img> that carries a
Layoutfinal class7 +5The layout support's classes and rules (wp_render_layout_support_flag,
LayoutStylefinal class4 +7The CSS rules a block's layout writes (wp_get_layout_style, probe
Parserfinal class6Parses block markup into a tree. The grammar is the delimiter comment:
QueryVarsfinal class1 +5The query variables a Query Loop block's context asks for, the way the
RenderStatefinal class44Per-request rendering state, owned by the renderer. The reference numbers
Rendererfinal class25 +8Renders a block tree the way the reference renders post_content:
Selectorfinal class1 +1The CSS selector a block type declares for its root or for one feature, from its `selectors` map or the older per-support keys.
Serializerfinal class5Parsed blocks back to markup. A core block is written by its short name;
Statesfinal class8Block state styles (a block's style[":hover"] and the like, probe
StyleEnginefinal class8 +8What a block's style object comes to, as the reference's style engine
Stylesfinal class6 +5The inline style and class names a block's "style" and preset
TemplatePartVariationsfinal class2The template part block's variations as the reference builds them (probes
Wrapperfinal class1The opening tag of a dynamic block's wrapper, in the reference's class

Minn\Blocks\Dynamic 9

Dynamic core blocks that render from data.

ClassKindMethodsSummary
Archivesfinal readonly class1core/archives: the months that have published posts, newest first, with their counts when asked (showPostCounts).
Calendarfinal class2The calendar block's colours: the reference puts them on the calendar's
Datesfinal class2Site-local dates the way the dynamic blocks print them.
LatestCommentsfinal readonly class1 +1core/latest-comments: the newest approved comments with avatar, meta, and a 20-word excerpt.
LatestPostsfinal readonly class1 +3core/latest-posts: the newest published posts as a list or a grid, each with
Searchfinal readonly class1core/search: the site search form. The button sits outside or inside
SocialLinksfinal class1 +3core/social-links and core/social-link. The list keeps its stored
SyncedPatternfinal readonly class1core/block: a synced pattern, rendered from the wp_block post it references.
TagCloudfinal readonly class1core/tag-cloud: non-empty tags by name, sized from 8pt to 22pt in

Minn\Blocks\Dynamic\Theme 7

The template blocks a block theme composes with.

ClassKindMethodsSummary
Commentsfinal readonly class2 +16comments, comments-title, comment-template, the comment-* blocks, the comment form, and the legacy post-comments.
Navigationfinal readonly class2 +21navigation, navigation-link, page-list. A navigation block's items come
NavigationPartsfinal class10 +2The navigation family's small answers for the block_core_navigation_*
PostBlocksfinal readonly class1 +13The post-* blocks: they render the context's current post.
QueryBlocksfinal class1 +13query, post-template, query-title, query-no-results, query-pagination, query-total.
Structurefinal readonly class1 +7template-part, pattern, site-title, site-tagline, site-logo.
TermBlocksfinal readonly class1 +4term-name, term-count and term-description: the term a block's context

Minn\Cli 19

The wp verbs the engine answers itself.

ClassKindMethodsSummary
AssetUpdatefinal class2 +13Shared wording for `wp plugin update` and `wp theme update`. Captured
Bundledfinal class3WP-CLI's own bundled command for a verb the engine answers. Its docs give
CacheCommandfinal class1`wp cache flush`: the engine has no object cache, so this is a no-op success.
Commandsfinal class1 +3The verbs the engine answers to. Every one is registered for the
CoreCommandfinal class3 +2WP-CLI's core verbs where a host's automation meets a Minn site. A Minn
CronCommandfinal class7 +4`wp cron`: the events, schedules, and spawn test a host and a fleet ask
DirectorySearchfinal class1Shared wording for `wp theme search` and `wp plugin search`. The
Installerfinal class9 +6The swap, both ways. Install parks WordPress's own files beside the
MaintenanceCommandfinal class4 +1`wp maintenance-mode`: the `.maintenance` marker in the webroot. The
MinnCommandfinal class12 +3Identifies the engine.
OptionCommandfinal class4 +3Options, read and written straight to the options table. Serialized
PackageInstallerfinal readonly class3 +4Puts a theme or a plugin on disk for `wp theme install` and `wp plugin
PluginCommandfinal class9 +4`wp plugin list|install|update|activate|deactivate|delete`: the inventory and the fleet's install/update/delete.
Preflightfinal class3 +15What a site will and will not get from the engine, before anything
RewriteCommandfinal class2`wp rewrite flush|structure`: permalink_structure is the engine's
Runtimefinal class3 +2The engine, booted for a command: reads the site's wp-config.php (which
SearchReplaceCommandfinal class1 +3`wp search-replace`: walks every string column, including serialized
ThemeCommandfinal class8 +2`wp theme list|install|update|activate|delete`: the inventory CaptainCore
UserCommandfinal class3 +3Users: the list and get views, and the one-time login link. The list and

Minn\Content 42

The repositories and records: posts, users, terms, comments, and the render pipeline.

ClassKindMethodsSummary
Autopfinal class1 +9Classic-content paragraphing (wpautop): blank lines become paragraphs,
Blocksfinal class3The content pipeline's front door: block markup goes through the block
Clickablefinal class2 +2Bare addresses in text made links (make_clickable, probe
CommentClassesfinal class1The class tokens a rendered comment carries: its type, its author, odd/even and thread alternation, depth, then the caller's extras.
CommentRecordfinal readonly class11One row of the comments table, read by name: $comment->author, ->content,
Commentsfinal readonly class22Reads and writes over the comments table.
ContentScanfinal class7 +1What a site's stored content asks of the engine: shortcodes, block
Emojifinal class2 +2Emoji as the reference's mail and feeds carry them, from the list the
Excerptfinal class1 +4The reference's generated excerpt, as captured from probe posts:
Inventoryfinal readonly class5 +3Plugins, themes, must-use plugins, and drop-ins as they sit on disk.
Linksfinal readonly class4 +3The links manager's table, as get_bookmarks and wp_insert_link read and
MediaShortcodesfinal class3 +9The [video] and [audio] shortcodes as the reference prints them: a
MenuItemfinal readonly class0One classic nav_menu_item, fields resolved from the post, its
Menusfinal readonly class13 +10Classic nav_menu terms and nav_menu_item posts. The front uses these
MoreTagfinal class1The `<!--more-->` marker that splits a post into the part a listing shows
NoteMarkersfinal class1 +1The markers the block editor's notes leave in content: a mark element
ObjectLabelsfinal class2A post type's or taxonomy's labels from its own and the defaults
Pagefinal readonly class5One page of a listing: the rows on it and how many rows the whole
PasswordGatefinal class6A password-protected post on the front end: its body is the password
PersonalDatafinal class2Personal data as the privacy tools hand it over (probe privacy): an
Playlistfinal class2The [playlist] shortcode's markup as the reference prints it (probe
PluginStatefinal readonly class4 +1Switching plugins on and off: a WordPress plugin file goes through the
PostClassesfinal class2The class list a post carries on its article element, in the reference's
PostRecordfinal readonly class16One row of the posts table, read by name. The columns keep their
PostSlugsfinal readonly class1 +3Which slug a live post may take beside the others, as the reference
PostStatusenum4The statuses a post row can hold; the value is the column's own spelling.
PostWriterfinal readonly class32 +4Every write to the posts table and its satellites: rows, meta, term
Postsfinal readonly class32 +9Reads over the posts table. A post comes back as a PostRecord; a listing
Readerfinal class5Who is reading this request: their user id, whether they may read
Revisionsfinal readonly class4 +1Revision rows read: the plain snapshots and the per-author autosave slots.
RowCachefinal class7 +1Rows read once a request: posts, their terms, users, and every object's
Sitefinal readonly class9Site-wide options and the site's clock.
SiteIconfinal readonly class4The site icon: the attachment the site_icon option names, as the file
Slugfinal class4
TagBalancerfinal class1 +3Closes what markup leaves open and drops what it closes without opening,
TermLinksfinal class2 +1A post's terms rendered as links, in the two shapes the reference
TermRecordfinal readonly class9One term with its taxonomy row, read by name: $term->name, ->slug,
Termsfinal readonly class14 +3
TextFiltersfinal class9 +2The small text filters the reference runs over content, titles and
Texturizefinal class12 +3The texturize subset the reference applies to rendered text: straight
UserRecordfinal readonly class9One row of the users table, read by name. Columns keep their WordPress
Usersfinal readonly class25 +3

Minn\Cron 1

Scheduled publishing.

ClassKindMethodsSummary
Cronfinal readonly class5 +9The engine's scheduled work: scheduled posts go live when their time

Minn\Extension 8

The extension contract and its seams.

ClassKindMethodsSummary
Extensioninterface1What a Minn extension is: a class the engine constructs once per request
Extensionsfinal class2Where the engine looks for the seams an extension registered. The
Loaderfinal class6 +1Finds extensions under wp-content/plugins and wp-content/mu-plugins,
Manifestfinal readonly class1 +1minn.json, read as data. A folder under wp-content/plugins (or
Registrationsfinal readonly class0Everything the extensions registered for this request, handed from Seams to the runner once.
SeamRunnerfinal readonly class8The engine's side of the seams: what the loader collected, called at the
Seamsfinal class12Where an extension can take part in a request: eight typed registrations,
Shortcodesfinal class2The shortcode syntax in rendered content: [tag], [tag attr="v" flag],

Minn\Feed 8

ClassKindMethodsSummary
Charsetfinal class2 +2A feed document as UTF-8. The encoding comes from a byte-order mark,
Datesfinal class1Feed dates (RFC 822, W3C, and the looser forms feeds carry) as Unix timestamps; a date without a zone is UTC.
Documentfinal readonly class9A parsed feed: the tree and the format it was recognized as (the
FeedErrorfinal class0A feed that could not be read: the message is the one the reference reports.
Irifinal class2 +6URLs in feeds: a reference resolved against its base (RFC 3986), then
Locatorfinal class2 +1Feed autodiscovery: the feeds an HTML page names in its
Partsfinal class4 +1The repeating parts of a feed element read out of the tree as raw
Treefinal class1 +8A feed document parsed into the nested arrays plugin code reads through

Minn\Front 45

URL resolution, permalinks, feeds, sitemaps and the public page.

ClassKindMethodsSummary
AdminBarfinal readonly class3 +19The Minn bar on the public site: the same server-rendered chrome the
ArchiveAddressesfinal readonly class7 +1The archives an address may stand for, as the reference answers them:
Archivesfinal readonly class2 +1The archive periods wp_get_archives lists: months, years, days and weeks
AssetsControllerfinal readonly class4The engine's own static assets, served under a reserved path.
AttachmentAddressesfinal readonly class4 +1The addresses an attachment's page answers to besides those its rules
Calendarfinal readonly class1 +5One month as the calendar widget and block draw it: a table whose caption
CalendarLabelsfinal readonly class2 +1The words a calendar prints: weekday names Sunday first, the short form
Canonicalfinal class1 +1Where a URL should redirect to, by the engine's own resolution: the
CommentPostControllerfinal readonly class1 +2wp-comments-post.php: the comment form's target. The reference's
CustomLogofinal class1The site logo a theme prints, as get_custom_logo builds it (probe
EmbedCardfinal class6The parts of a post's embed card the reference's embed template prints,
FeedControllerfinal readonly class2 +2The feeds, wherever a request asks for one: the feed var of the rule its
FeedTagsfinal class13 +1The template tags a feed is written with that take more than a line, as
FeedTemplatesfinal class1 +15The feed templates do_feed_* loads, written from the reference's output
FeedWriterfinal class6A feed as it is written: text as given, and what each template tag and
FrontControllerfinal readonly class3 +3The public site. One catch-all route: resolve the URL, then either
Kindenum0What a public URL resolved to.
ListingLinksfinal class4The prev/next links a paged listing prints: which page sits either side of
Maintenancefinal class1Maintenance mode, as hosting tools and updaters switch it on: a
PageLinksfinal class1The links between the pages of a post split with <!--nextpage-->, as
Paginationfinal class2Numbered page links in the reference's shape: previous, the end and
Permalinksfinal readonly class18 +3Builds public URLs from the site's permalink structure. With an empty
PostEmbedfinal class6 +1A post as other sites embed it, the oEmbed provider side, as the
PostNavigationfinal class3 +1The links to the posts either side of this one, and the nav block that
PrintedResponsefinal class1 +1A response WordPress's handlers print themselves (a sitemap, robots.txt),
ProbeControllerfinal readonly class5The surface monitors, crawlers, and hosting checks hit that is not a
QueryMovesfinal readonly class1 +6Where the root's archive query forms move under pretty permalinks, as
Redirectsenum3Whether a resolution may answer with a canonical redirect. A GET or HEAD
Rendererfinal readonly class2 +2The interim public theme: one clean template until the block-theme
RequestParsefinal class3The query vars the reference's request parse sets for an address
Resolutionfinal readonly class15The outcome of resolving a public URL: which kind of thing it names,
Resolverfinal readonly class5 +12Turns a public URL into a Resolution the way the reference's request
ResourceHintsfinal class1 +2The resource hint links wp_head prints (wp_resource_hints): each relation
RuleRoutesfinal readonly class1 +7What a matched rewrite rule's query vars name, as the reference's main
RuleTablefinal class2 +4An address read as WordPress's request parse reads it (suites
SingleAddressesfinal readonly class3The addresses a single answers to besides its own, as the reference
SingleQueriesfinal readonly class1 +3The single a query string asks for, as the reference's request parse and
SitemapControllerfinal readonly class5 +1The sitemap index, its pages, and the two stylesheets, as the
SitemapRequestfinal class3 +2A sitemap request at template_redirect, as the reference's sitemaps
SitemapXmlfinal class3 +3The two sitemap documents, index and URL set, from entry maps; one
Sitemapsfinal class4 +1What the sitemaps share with WP_Sitemaps, which serves them: the two
TermListsfinal class5 +1A term's parent chain and the tag cloud, built from term rows the caller
ToolbarMarkupfinal class5WP_Admin_Bar's markup, piece by piece, as the reference prints it (probe
ToolbarMenusfinal class16 +4The nodes WordPress puts on the toolbar itself, as the reference adds
ToolbarTreefinal class1 +3WP_Admin_Bar's nodes bound into the tree they print as, as the reference

Minn\Html 7

The HTML tag processor.

ClassKindMethodsSummary
Decoderfinal class4 +3Character reference decoding for text and attribute values: numeric and
Editsfinal class19 +3The edits pending on the current token: attribute sets and removals,
Escapedfinal readonly class0An attribute value that comes already escaped (a URL through esc_url), written as it is.
Scannerfinal class10 +2Reads one token's shape out of raw HTML at an offset: a tag with its
TagQueryfinal readonly class2A tag processor's next_tag() query: a tag name (any case), a class, the
Tagsfinal class35 +10A streaming HTML tokenizer with in-place edits: every token in document order, attributes decoded,
TokenMapfinal class4 +1A map from words to replacements that reads the longest word at a place

Minn\Html\Tree 13

ClassKindMethodsSummary
BodyRulesfinal class2 +32The "in body" insertion mode, with select handled in body as the current
Builderfinal class43 +9The HTML tree construction algorithm over the engine's tokenizer, as the
Compatfinal class2 +1The compatibility mode a doctype indicates, by the identifier lists in
Eventfinal readonly class1One step of the walk the HTML processor reports: a node opened (pushed)
ForeignRulesfinal class1 +5The rules for content in SVG and MathML: text and comments stay in the
Formattingfinal class8 +1The list of active formatting elements, with its markers (null): the
HeadRulesfinal class1 +23The insertion modes around the body: initial (doctype and the
Nodefinal class11A node the tree builder places: an element (named as the HTML API
OpenElementsfinal class12 +1The stack of open elements and the spec's scope tests over it: an
Serializerfinal class5 +1Normalized HTML for the processor's walk, token by token: tag names
TableRulesfinal class1 +27The table insertion modes: in table (and its text), in caption, in
Tokenfinal readonly class5A token as the tree builder reads it: a tag (name upper-cased), a run of
Unsupportedfinal class0Where the reference's HTML processor stops: markup whose tree it does

Minn\Http 40

Request, response, routing, and the outgoing client.

ClassKindMethodsSummary
Accessenum0Who a route is for. The six answers every route gives, so the
Argsfinal class2The parameters a route accepts, as the reference describes them in the
CertificateNamefinal class3Whether a TLS certificate names a host: a wildcard only as a whole first
CookieTextfinal class7Set-Cookie text and the matching rules a cookie jar applies: parsing a
Destinationfinal readonly class3 +4Where Minn\Http lets a request go. Only http and https; when hosts are
DiePagefinal class1 +1The page wp_die shows a browser, as the reference draws it (probe
Downloadfinal readonly class1A file the engine fetches for itself (a package, a language pack), over
Envelopeinterface1What runs around a matched route once the router knows the route takes
Exchangefinal readonly class7What came back: the final response's status, headers (repeats as lists), Set-Cookie values, and body, or the transport error.
Failurefinal class10 +5What the public sees when the engine cannot answer: a plain page with no
Fakefinal class5 +1Answers requests in place of the network, and keeps what was sent. A test
Ipv6final class3IPv6 addresses as text: written out in full (eight groups, or six and an
IriPartsfinal readonly class7 +4An IRI (a URL that may carry non-ASCII text) split into its parts and
ItemArgsfinal class0The parameters a single resource's read takes, as the reference's REST
Kernelfinal readonly class1 +1The edge. Turns a request into a response through the router and turns
LegacyHeadersfinal class2WP_Http's legacy readers, kept for plugins that still call them (probe
Locationfinal class3 +1Where a redirect leads: a Location header made absolute against the URL that sent it.
Matchedfinal readonly class0A route the router matched to a request and whose policy it judged: the
MediaTypefinal class1Reading the media types a request names in its Accept and Content-Type headers.
Methodenum3
NoCachefinal class1The headers that keep a response out of every cache.
Outboundfinal readonly class2One outgoing HTTP request, normalised: the transport needs nothing else.
Policyfinal readonly class6What a route requires of its caller, as data on the route: the router
Punycodefinal class3 +3Internationalized host names in ASCII: each label that is not ASCII is
RawResponsefinal class6An HTTP response as text, the way the Requests library hands it from
Refusalinterface1A refusal a route judges after its arguments and before its policy: the
Requestfinal readonly class17An immutable picture of the incoming request. Built once from the PHP
RequestFailedfinal class0Thrown by Exchange::throw() when no response arrived or it was not a 2xx; the exchange rides along.
RequestsNamesfinal class1The Requests library's PSR-0 class names (Requests_Exception_HTTP_404,
Responsefinal readonly class14What a handler returns. Nothing is written to the client until the
RevisionArgsfinal class0The parameters the revisions and autosaves routes accept, as the
Routefinal readonly class3Declares a handler method as a route. The policy lives here, as
RouteMissfinal class0A handler declining a request its pattern matched: the router swallows
RouteParamsinterface1The parameters a route takes when they depend on what its captures name
RouteRowfinal readonly class3 +1One line of the route table: what a route is, who it is for, and what it
Routerfinal class6 +8Matches a request to a #[Route] on one of the registered handler
StatusTextfinal class1The reason phrase a status line carries for each code, as the reference's
Subjectenum2The record a route capture names, so a policy can have it looked up
Transportfinal class1 +4The engine's outgoing HTTP transport over curl: it sends exactly what an
TrustedProxiesfinal readonly class5 +3Which addresses in front of the engine may speak for the client.

Minn\I18n 14

ClassKindMethodsSummary
Catalogfinal readonly class6One translation file's contents: its headers as written, its messages
Gettextfinal class7 +1Translation as plugins see it (__, _x, _n and the rest map here): the
LegacyPluralFormsfinal class3 +6The plural expression reader the old POMO library carries (Plural_Forms),
LocalDatesfinal class1A date in the site's language, as the reference's wp_date writes one:
LocaleStackfinal class6The locales a request switched into, innermost last, each with the user
MoFilefinal class5 +5The GNU gettext binary catalog (.mo), read and written. The file opens
Numbersfinal class1Numbers written for people: grouped by thousands, to the decimals asked.
PhpFilefinal class1The PHP translation file (.l10n.php): a file that returns an array of its
PluralExpressionfinal class2 +5The C subset a Plural-Forms header writes its rule in: the number n,
PluralRulefinal readonly class7A language's plural rule from its Plural-Forms header: how many forms it
ScriptTranslationsfinal class5 +1Where a script's JSON translations are found, and how they reach the
SiteLanguagefinal class5The site's language as pages declare it: the locale in force (a switched
TextDomainsfinal class19 +1The text domains this request knows: each domain's files in the order they
TranslationFilesfinal class3Which file a request for a .mo path reads, and reading it. Asked for

Minn\Login 5

/wp-login.php and the sign-in surface.

ClassKindMethodsSummary
LoginControllerfinal readonly class2 +27Signing in. The page people see is /minn-admin/login: the form, the
LoginFormfinal class10 +2The sign-in page markup.
LoginHooksfinal readonly class10The sign-in as plugins see it, when they are loaded. The credentials go
LoginNoticesfinal readonly class9 +1What a sign-in page tells the reader, held as the reference's pages hold
ServeLoginfinal class0Thrown by the wp-login.php shape file when plugin code require's it

Minn\Mail 26

Sending mail and the notices the engine sends.

ClassKindMethodsSummary
AddressRulesfinal class4 +1Email addresses: the checks a mailer can apply (PHP's filter, the
ChangeNoticesfinal class3The notices the reference mails a user when their password or email
Composerfinal class8 +11A message as the reference's mailer writes it: the header block (Date,
CustomHeadersfinal class1A mailer's custom headers changed in place (PHPMailer::replaceCustomHeader,
DataLinesfinal class1A message cut into the lines SMTP DATA sends. Any line break (CRLF, CR
DebugOutputfinal class2 +2Where a mailer's debug text goes, as its Debugoutput setting names it:
Dkimfinal class6 +1DKIM signatures (RFC 6376) as the reference's mailer writes them:
Draftfinal readonly class3Everything a message is composed from: the transport it goes out on
HeaderWordsfinal class4 +3Header text as mail carries it (RFC 2047): left alone when it is plain
HostEntryfinal readonly class5One entry of a mailer's Host setting ("host", "host:port",
HtmlMessagefinal class5What a mailer reads out of an HTML message: the images it can carry
MailHeadersfinal readonly class2 +2The headers argument of wp_mail() read the way the reference reads it:
MailLogfinal class3The engine's development transport: each message as one JSON line
MailSettingsfinal readonly class3How mail leaves the site, from the minn_mail option (JSON or a serialized
Mailerfinal readonly class5 +3Sends a Message through the configured transport. Failures are logged
MailerStringsfinal class3 +1The mailer's English messages, keyed as plugins look them up
Messagefinal readonly class1One outgoing plain-text email.
MimeTypesfinal class2The MIME type a mailer gives an attachment by its file extension (the
Noticesfinal readonly class4 +1The messages the engine itself sends, worded as the reference words them
PathPartsfinal class1A path's parts the way a mailer names attachments, safe for multibyte
SendmailLinefinal class1The command a mailer pipes a message to for sendmail and qmail (probe
Smimefinal class2S/MIME signing of a composed MIME entity with a certificate and key on
Smtpfinal readonly class1Delivery over SMTP for the engine's own mail when WordPress's mail
SmtpSessionfinal class21 +9One SMTP conversation as the reference's client holds it: the socket,
TextWrapfinal class3 +5Word wrapping for mail text. Lines break at spaces once they would pass
Transferfinal class7Body text in a content transfer encoding, and the line-ending helpers

Minn\Media 17

Uploads, image sizes and attachment metadata.

ClassKindMethodsSummary
AvifInfofinal class1 +5An AVIF file's primary image as wp_get_avif_info reports it (probe
Canvasfinal readonly class13 +4One GD bitmap and the operations the media layer needs on it. Every
CompatFieldsfinal class1 +1The attachment's extra fields as the media modal's compat form prints
FileTypesfinal class6File types as WordPress knows them (data/mime.json): every extension's
Galleryfinal class3 +3The classic `[gallery]` shortcode's markup. Every gallery on a page is
Iconsfinal class1 +2The icon a file type is shown with, as wp_mime_type_icon finds it (probe
ImageMimefinal class1An image file's real type from its first bytes, as the reference sniffs
Kindfinal class2Whether an attachment is an image, audio or video (by its MIME type) or of a given extension.
MediaModalfinal class2 +9WordPress's media modal, set up for a page that opens it (wp_enqueue_media):
Metadatafinal class3The _wp_attachment_metadata blob: parsed by scanning for the shapes it
PhotoMetafinal class1 +6A photo's own description, read as the reference's wp_read_image_metadata
Playerfinal class5The media player's data as the reference gives MediaElement.js (probe
Sizingfinal class8 +2The image size arithmetic the media functions share: the crop or scale a
Uploadfinal readonly class5One file arriving for the library, on either transport: a multipart
Uploadsfinal readonly class8The uploads directory: paths, URLs, the allowed types, and landing a file.
WebpInfofinal class1A WebP file's size and kind from its first 40 bytes, as wp_get_webp_info
Writerfinal readonly class3Where the media library's files live, as a REST upload names them: a

Minn\Media\Av 15

ClassKindMethodsSummary
Ac3final class1An AC-3 (Dolby Digital) frame's header as the reference's media reader
Analyzerfinal class2 +3A media file's analysis, keyed as the reference's media reader keys the
Asffinal class2 +4Advanced Systems Format files (WMV, WMA, ASF) as the reference's media
ExpGolombfinal class5A bit reader over a byte string for the exponential-Golomb codes of a
Flacfinal class3 +2FLAC, on its own or as the first packet of an Ogg stream, as the
Flvfinal class1 +6Flash video (FLV) as the reference's media reader measures it (probe
Genresfinal class1The genre names an ID3 tag refers to by number: the ID3v1 list with the
Id3final class2 +15ID3 tags, as the reference's audio reader names what they say (probe
IsoMediafinal class2 +13MPEG-4 and QuickTime files (MP4, M4A, M4V, MOV) as the reference's media
Lamefinal class3 +3The LAME tag an encoder writes after the Xing or Info counts, and what
Matroskafinal class2 +10Matroska and WebM files (MKV, MKA, WebM) as the reference's media reader
Mpegfinal class3 +4MPEG audio (MP3, and layers 1 and 2) as the reference's audio reader
Oggfinal class1 +5Ogg files as the reference's media reader measures them (probe
Rifffinal class3 +13RIFF files, WAV audio and AVI video, as the reference's media reader
Sourcefinal class7A media file read in parts, so a large video is never loaded whole: its

Minn\Objects 30

ClassKindMethodsSummary
BlockTypeinterface0A registered block type as the WordPress layer hands it to plugins
Commentinterface0A comment as the WordPress layer hands it to plugins (WP_Comment). The
CommentsQueryinterface0A comments query as the WordPress layer hands it to plugins
Dependencyinterface0A registered script or style as the WordPress layer hands it to plugins
Environmentinterface0The request's environment as the WordPress layer hands it to plugins
Errorsinterface0A list of errors as the WordPress layer hands it to plugins (WP_Error):
HttpResponseinterface0An HTTP response as the WordPress layer hands it to plugins
Postinterface0A post as the WordPress layer hands it to plugins (WP_Post). The engine
PostTypeinterface0A registered post type as the WordPress layer hands it to plugins
Queryinterface0A posts query as the WordPress layer hands it to plugins (WP_Query): its
RenderedBlockinterface0A block being rendered as the WordPress layer hands it to plugins
RestRequestinterface0A REST request as the WordPress layer hands it to plugins
RestResponseinterface0A REST response as the WordPress layer hands it to plugins
RestServerinterface0The REST server as the WordPress layer hands it to plugins
Rewriteinterface0The rewrite object as the WordPress layer hands it to plugins
SessionTokensinterface0A user's sessions as the WordPress layer hands them to plugins
SiteLocaleinterface0The site's locale as the WordPress layer hands it to plugins
SitemapProviderinterface0A sitemap provider as the WordPress layer hands it to plugins
SitemapServerinterface0The sitemaps as the WordPress layer hands them to plugins (WP_Sitemaps):
Taxonomyinterface0A registered taxonomy as the WordPress layer hands it to plugins
Terminterface0A term as the WordPress layer hands it to plugins (WP_Term). The engine
TermsQueryinterface0A terms query as the WordPress layer hands it to plugins (WP_Term_Query).
Themeinterface0A theme as the WordPress layer hands it to plugins (WP_Theme): its
ThemeJsonLayerinterface0One origin's theme.json data as the WordPress layer hands it to the
Toolbarinterface0The toolbar as the WordPress layer hands it to plugins (WP_Admin_Bar):
Upgraderinterface0An upgrader as the WordPress layer hands it to plugins (WP_Upgrader and
UpgraderSkininterface0What an upgrader reports through (WP_Upgrader_Skin and its kinds): the
Userinterface0A user as the WordPress layer hands it to plugins (WP_User). The engine
UsersQueryinterface0A users query as the WordPress layer hands it to plugins (WP_User_Query).
Widgetinterface0A widget as the WordPress layer hands it to plugins (WP_Widget): its id

Minn\Ops 20

ClassKindMethodsSummary
Archivefinal class4 +1A zip unpacked the safe way, for the plugin and theme installer and for
Askingenum1Why the engine asks the update service: the daily pass, once every 24
AutoUpdatesfinal readonly class2 +1Whether per-item auto-updates apply to plugins or themes, as the
Changelogfinal class4 +1A changelog read from its repository rather than shipped: a Minn release
CoreStatusfinal readonly class4The core the app's update banner and chip speak of, which on Minn is
Diagnosticsfinal readonly class4 +16The System view's facts about this install: the engine, PHP, the
Directoryfinal class4 +1The Minn update service, https://updates.minn.run: the one place the
DirectoryApifinal readonly class1 +2plugins_api() and themes_api() as plugins call them and answer them
EngineChecksumsfinal readonly class1 +6Checks a Minn install's files against the release they claim to be, the
EngineUpdatefinal readonly class5 +3Replaces the running engine with a published release. The release's
FilesystemCredentialsfinal class2 +6How the site reaches its own files, and the connection it asks for when
InstalledSoftwarefinal readonly class3What is installed, as the System view lists it: every extension and
Logsfinal readonly class8The log files the System view can read and clear: the debug log the
Packagesfinal readonly class17 +8Putting plugins, themes and extensions on disk. Plugins and themes come
Releasefinal readonly class3One published Minn release as the update service describes it (and as
Releasesfinal class5 +1Whether a newer Minn is out, asked of the Minn update service at most
ShapeFilesfinal class3 +5The files an install lays at the webroot for tooling to find: the shape
Unzipfinal readonly class2 +3An archive unpacked as unzip_file() unpacks it (probe unzip-file): into
Updatesfinal class19 +8Update offers for the site's plugins and themes from the directory, asked
UpgraderRunfinal readonly class2 +3The engine's own installs and updates, run through the reference's

Minn\Query 10

Shared SQL fragments.

ClassKindMethodsSummary
AuthorPostsSqlfinal class1get_posts_by_author_sql as the reference writes it: for each type, its
CommentOrderfinal class4 +2WP_Comment_Query's ORDER BY and LIMIT as the reference writes them
DateSqlfinal class13 +4The WHERE fragment of a date query in the reference's shape: before and
MetaSqlfinal class11 +7The JOIN and WHERE fragments of a meta query in the reference's shape:
MimeWherefinal class1 +1wp_post_mime_type_where as the reference writes it (probe wp-query-sql):
NetworkSqlfinal class15 +6The SQL WP_Site_Query and WP_Network_Query build from their variables
PostOrderfinal class3 +2WP_Query's ORDER BY as the reference writes it (probe wp-query-sql): the
PostSearchfinal class6WP_Query's search as the reference writes it (probe wp-query-sql): the
Sqlfinal class5Literal quoting for the SQL fragments the query classes hand to plugins,
TaxSqlfinal class8 +2The JOIN and WHERE fragments of a taxonomy query in the reference's

Minn\Rest 110

The wp/v2 surface: shapes and controllers.

ClassKindMethodsSummary
Apifinal readonly class24 +6The REST API: wires the controllers for one request and dispatches a
ApplicationPasswordsControllerfinal readonly class7 +5wp/v2/users/{id}/application-passwords: list, create, rename, delete,
ArgCheckfinal readonly class2 +6Judges a route's declared arguments against the request before the
BatchControllerfinal readonly class1 +7batch/v1 as the reference answers it (probe rest-batch): up to 25
BatchRequestfinal class1The requests a batch payload names, normalised into descriptors the
BlockDirectoryControllerfinal readonly class1 +1wp/v2/block-directory/search (Austin, 2026-10-21, decision 1B): the
BlockEditorControllerfinal readonly class2Two of wp-block-editor/v1's routes, for someone who may edit theme
BlockRendererControllerfinal readonly class1 +3wp/v2/block-renderer as the reference answers it (probe
BlockTypesControllerfinal readonly class4 +4wp/v2/block-types as the reference answers it (probe rest-block-types):
BlocksControllerfinal readonly class5 +1wp/v2/blocks: synced patterns and reusable blocks, stored as wp_block
Callerfinal class14 +1Who is making this REST call. Resolved once from the cookie and nonce;
Cataloguefinal class2 +1The route table read from the classes alone: every #[Route] under
ClientSchemafinal class2 +3A JSON schema trimmed for a client (probe json-schema): only the keywords
CommentListArgsfinal class1The WP_Comment_Query arguments a comment list request makes, as the
CommentObjectfinal readonly class2 +1The wp/v2 comment object; edit context adds the moderation-desk fields.
CommentsControllerfinal readonly class5 +7wp/v2/comments: the status tabs with pagination headers, single,
Contextenum2The view a REST caller asked for. View is the public shape, edit adds the
DeclaredPostsControllerfinal readonly class5 +1wp/v2/{rest_base} for extra post types declared by an active extension.
DeclaredTermsControllerfinal readonly class5wp/v2/{rest_base} for the taxonomies plugin code registers to show in
Embedfinal class5 +7The _embed decoration and the embed context. Every embeddable link in an
EngineRoutesfinal class2The engine's own REST routes in the reference's regex form, for the
ExistingPostfinal class1A post created with an id names one that exists: refused with
Fieldsfinal readonly class5 +1The _fields response filter. Dot paths descend ("title.rendered"); the
FontArgsfinal class0The font library's parameters as the reference's REST index lists them
FontCollectionsControllerfinal readonly class2 +2wp/v2/font-collections (probe: the font library routes on the
FontFaceCreationfinal class1A font face's create judges its settings (its sources against the files
FontFamilyChangefinal class1A font family's update judges its settings, then its theme.json version,
FontFamilyCreationfinal class1A font family's create judges its settings, then its theme.json version,
FontObjectfinal readonly class2 +3A font family and a font face as wp/v2 shapes them (probe: the font
FontSettingsfinal class7 +6The settings a font family or face is written with, judged and cleaned as
FontWritesControllerfinal readonly class3 +4wp/v2/font-families written (probe font-writes): a family created and
FontsControllerfinal readonly class6 +6wp/v2/font-families and their font-faces, read and deleted (probe: the
GlobalStylesControllerfinal readonly class6 +7wp/v2/global-styles: the site editor's saved styles (one post per
GlobalStylesObjectfinal readonly class3 +2The wp/v2/global-styles item, theme, and revision shapes.
GlobalStylesParamsfinal class1A global styles update's parameters as the reference declares them: its
IndexControllerfinal readonly class2 +2The API index at /wp-json/: the site facts monitors read (name, url,
InstalledThemesControllerfinal readonly class3 +6wp/v2/themes as the reference answers it (probe rest-themes): the
ItemRenderfinal class2What a post read sets up around its rendering, as the reference does for
Linksfinal class3Response link relations compacted through CURIEs: a rel that matches a CURIE's template becomes `name:suffix`, and the used CURIEs ride along.
LiveSettingsfinal readonly class3 +1wp/v2/settings with plugins loaded, served from the registered settings
MediaControllerfinal readonly class5 +7wp/v2/media: list, single, upload on both transports (multipart field
MediaObjectfinal readonly class3 +2The wp/v2 media object, view and edit context.
MenuCollectionParamsfinal class1The menus list's parameters as the reference declares them: a flat
MenuItemCollectionParamsfinal class2 +1The menu items list's parameters as the reference declares them: the
MenuItemObjectfinal readonly class1The wp/v2/menu-items resource.
MenuItemStatusfinal class1Menu items listed with a status beyond publish by a caller who may not
MenuListsfinal readonly class2 +1The menus and menu items lists, served as the reference serves them: the
MenuObjectfinal readonly class1The wp/v2/menus resource: a nav_menu term plus locations and auto_add.
MenusControllerfinal readonly class12 +6wp/v2/menus, menu-items, and menu-locations. Viewing needs edit_posts;
NavigationControllerfinal readonly class5wp/v2/navigation: the block theme's navigation menus, stored as
ParamCheckfinal class2 +1The required / validate / sanitize pass over a request's declared arguments.
PathArgsfinal class0The arguments a route's path names, as the reference lists them among the
PatternDirectoryControllerfinal readonly class1 +3wp/v2/pattern-directory/patterns (Austin, 2026-10-21, decision 1B): the
PluginsControllerfinal readonly class6 +10wp/v2 plugins: what sits in wp-content/plugins, in the reference's
PolicyGatefinal readonly class2 +7Judges a route's policy against the caller, with the reference's
PostCollectionParamsfinal class5 +9A post type's collection parameters as the reference builds them for its
PostListArgsfinal class2 +5The WP_Query arguments a post list request makes, as the reference makes
PostObjectfinal readonly class11 +12Builds the wp/v2 post and page objects in the reference's shape: the
PostsControllerfinal readonly class6 +4wp/v2 posts and pages, read side.
PostsWriteControllerfinal readonly class8 +18wp/v2 posts and pages, write side: create, update, trash, and force
RegisteredFieldsfinal class6 +4The fields plugin code adds to an object type with register_rest_field,
RegisteredPostFieldsfinal readonly class1 +1The REST object of a post whose type plugin code registered (probe rest-plugin-types), built by what the type supports.
RegisteredTypefinal readonly class5A post type plugin code registered, as its REST object follows it
RenderedFieldsfinal class5 +1A post's rendered title, content and excerpt as a REST response carries
Replyfinal class6JSON responses in the reference's shape: its header set, its json_encode
Responsesfinal class6 +1REST answers as the WordPress layer shapes them: any value made a
RestMetafinal class15 +7An object's meta field over REST, from the keys registered to show
RestUrlfinal readonly class3REST URLs in the form the reference emits for the site's permalink mode:
RevisionCollectionfinal class3 +5A revisions list as the reference answers it (probe of the posts,
RevisionsControllerfinal readonly class7 +9wp/v2 revisions under posts, pages, patterns and navigation menus, and
RouteArgsfinal class1The argument groups a route registers with, filled the way register_rest_route fills them.
RouteCataloguefinal readonly class4 +2The routes the engine serves, described in the reference's shape for the
RouteIndexfinal class2 +1The description of one route the REST index publishes: namespace, methods, endpoints with their argument schemas, self link.
RouteMatchfinal class2Finds the registered handler for a method and path among the runtime's route table.
RouteSchemasfinal class1The item schema an OPTIONS answer describes a route by: the one its core
RouteTablefinal class1The registered endpoints in dispatch shape: one handler list per route, methods as a set, non-numeric keys lifted into the route's options.
RuntimeEnvelopefinal readonly class1 +6The REST server's filters around one of Minn's own routes, as the
RuntimePreparefinal class5 +3An item a REST response carries, through the filter the reference runs
RuntimeRoutesfinal class20 +12Routes plugin code registered with register_rest_route(), answered
Schemafinal readonly class10 +10JSON-schema handling the way the REST API's argument validation does it:
SchemaChoicesfinal readonly class4 +2anyOf and oneOf the way the REST API's validation judges them (probe
SchemaDatafinal class1REST schemas captured from the reference for the facade's controller
SchemaValuesfinal class18 +1The value side of JSON Schema, as the reference applies it: what counts
SearchControllerfinal readonly class1 +6wp/v2 search over published content: id, title, url, type, and the
Servicesfinal class53 +1The objects one REST request shares, each made once, on first use, from
Settingsfinal readonly class2The registered settings the Settings views read and write, mapped to
SettingsControllerfinal readonly class1wp/v2/settings: read and write, both behind manage_options; with plugins loaded, every registered setting (LiveSettings).
SidebarsControllerfinal readonly class7 +4wp/v2/sidebars and wp/v2/widget-types as the reference answers them
SiteHealthControllerfinal readonly class1wp-site-health/v1 (probe: the site health routes on the reference): the
SiteSchemafinal class4The site's JSON-schema handler: one Schema whose email test, number
StatusesControllerfinal readonly class2 +4wp/v2/statuses as the reference answers it (probe rest-statuses): every
Subjectsfinal readonly class3 +2Whether the record a route capture names exists, for the policy gate to
Taxonomiesfinal class4The taxonomy registry the wp/v2 surface describes: the core set seeded
TemplateObjectfinal readonly class2 +1The wp/v2/templates and wp/v2/template-parts resource.
TemplateRevisionsControllerfinal readonly class6 +3wp/v2/templates and wp/v2/template-parts revisions and autosaves: the
TemplatesControllerfinal readonly class12 +13wp/v2/templates and wp/v2/template-parts: the block theme's templates as
TermCollectionParamsfinal class1A taxonomy's term list parameters as the reference declares them (probe
TermFiltersfinal class1 +1A term a REST read answers with, as plugin code filters it on the
TermListArgsfinal class1The get_terms arguments a term list request makes, as the reference
TermObjectfinal readonly class4 +2The wp/v2 category and tag objects.
TermsControllerfinal readonly class6 +2wp/v2 categories, tags, and pattern categories: list, single, and the create/update/delete the taxonomy admin drives.
Typesfinal class8 +3The engine's registry of built-in post types, seeded from the observed
UrlDetailsfinal class1 +3A page's details as the editor's link previews read them (probe
UserCollectionParamsfinal class1The users list's parameters as the reference declares them (probe
UserListArgsfinal class1The WP_User_Query arguments a user list request makes, as the reference
UserObjectfinal readonly class3 +2The wp/v2 user objects: the public view shape and the edit-context shape.
UsersControllerfinal readonly class8 +8wp/v2 users: me, list, single, and the create/update/delete-with-reassign the Users view drives.
ViewConfigPatchfinal class3 +3A patch to a view configuration (WP_View_Config_Data; probe
WidgetObjectfinal readonly class3 +1A widget as wp/v2/widgets shows it (probe rest-widgets): its id and base,
WidgetsControllerfinal readonly class5 +3wp/v2/widgets as the reference answers it (probe rest-widgets), for

Minn\Runtime 181

The WordPress runtime plugins load against.

ClassKindMethodsSummary
Abilitiesfinal class15 +3The abilities registry behind WP_Abilities_Registry,
AbilityRunfinal class3The checks of an ability's run, as the reference makes them (probes
AccountFlowsfinal class4 +1The account functions a sign-in page and plugins call, with the
AdminActionControllerfinal readonly class3 +3The wp-admin pages a plugin answers itself. The admin is Minn Admin, so
AjaxControllerfinal readonly class3 +3admin-ajax.php, the endpoint plugins post their front-end work to: a form
AllowedOptionsfinal class1The settings-page allowlist plugins extend: option group => the option
ApplicationPasswordEventsfinal class2 +1Application password changes made over REST, as the reference makes them
ApplicationPasswordRecordsfinal class9 +2A user's application passwords as WordPress's API keeps them
ApplicationPasswordSignInfinal class2 +1wp_authenticate_application_password as the reference answers it (probe
ArchiveLinksfinal class2A post type's archive address and its feed, as the reference gives them
AssetEditsfinal class1What a plugin did to $wp_scripts->registered or $wp_styles->registered
AssetQueuefinal class15 +1The scripts and styles a request queues, as WordPress's asset functions
AssetViewfinal class2 +5A registry's view in the shape plugins read and edit it: the public
Assetsfinal class30 +5The registry behind wp_register_/wp_enqueue_ for scripts and styles:
AttachmentImagesfinal class23 +2An attachment's image as WordPress's media functions make it: the
AttachmentModelfinal class1 +1An attachment as the media modal's scripts read it
Attachmentsfinal class17 +1Attachments as WordPress's media functions keep them: the uploads folder
Autosavesfinal class3 +2An autosave as the reference's REST autosave makes it (probes
AvMetadatafinal class5 +6An audio or video file's metadata as WordPress's media readers keep it
Avatarfinal class6Avatars the way get_avatar_data and get_avatar decide them: the argument
BlockFiltersfinal class9 +2The block-level filters plugin code hooks (pre_render_block,
BlockHooksfinal class9 +3The Block Hooks API on the engine's own front end: a plugin asks for its
BlockMetadatafinal class3 +2block.json to the settings a block type registers with: the property
BlockQueriesfinal class2The query arguments the query and comments blocks run, as WordPress's
BlockTemplatesfinal class5Block templates plugins register at runtime, by their namespaced name
BlockWidgetfinal class1A block widget's legacy class name. Every widget the block editor saves
BrowserGlobalsfinal class1 +1The browser and web server a request names, as the reference's globals
CommentChecksfinal class12 +3What WordPress checks of a comment before and after it is stored: the
CommentCloserfinal readonly class2The Discussion setting that closes comments on old posts. Observed on the
CommentEventsfinal readonly class11 +5What the reference's REST comments controller tells plugins, for the
CommentFeedQueryfinal class2 +2The comments a comments feed's main query carries, as the reference
CommentFormfinal class1 +3The comment form's submission with plugins loaded
CommentPagesfinal class4 +1Which page of a post's comments a comment falls on, and the link that
CommentQueryfinal readonly class1The approval breakdown wp_count_comments reports (comment lists run through WP_Comment_Query and Minn\Runtime\CommentQueryRunner).
CommentQueryRunnerfinal class2 +2WP_Comment_Query as the reference runs it (probe wp-comment-query-sql):
CommentQueryWherefinal class2 +9WP_Comment_Query's WHERE pieces and the posts join, in the reference's
CommentReadsfinal class4What WordPress's comment functions tell about comments: the comments a
CommentTagsfinal class6What the comment template tags tell about a comment (the one being read
CommentThreadsfinal class2A threaded or flat comment query's descendants as the reference fills
CommentWritesfinal class16 +3Comments written as WordPress's comment functions write them: a comment
Connectorsfinal class12 +1The connectors registry: the external services a site talks to (AI
Constantsfinal class2 +1The constants plugin code expects: the fixed set from data/constants.json
CronEventsfinal class14 +2Scheduled events as WordPress keeps them in the cron option: the list
CronTablefinal class10The cron option's shape, operated on as data: timestamp => hook => key =>
CurrentUserfinal class2Who the request is, as the reference settles it before init: the user
DbDeltafinal readonly class6 +1dbDelta as the reference does it: a CREATE TABLE statement creates the
DebugModefinal class5PHP's error settings from the debug constants, as the reference's boot
Deferralsfinal class5 +1The switches an importer flips for the length of a request (probe
DeprecatedUserMetafinal class2 +2update_usermeta() and delete_usermeta(), deprecated since 3.0.0 and kept
DieInputfinal class1wp_die's message, title and arguments made whole, as the die handlers
DocumentTitlefinal class6 +1The page's title as WordPress's title functions make it from the main
EarlyFiltersfinal class1Filters that run before the runtime exists, over the hooks added that
EarlyRequestfinal class5The request as WordPress's earliest functions see it, before the runtime
EditLinksfinal class6 +1The admin addresses WordPress's link functions give for editing: a
FileHeadersfinal class1The headers at the top of a theme, plugin or translation file, as
FileNamesfinal class6Files as WordPress's file functions name and remove them: a name made
FileTypeCheckfinal class1 +2A file's type from its content as much as its name, as the reference's
FileUploadfinal class1 +2A file a plugin hands to wp_handle_upload or wp_handle_sideload, taken in
Handofffinal class86 +1What the engine asks of the layer it runs under, where a plugin may have
Heartbeatfinal class1The heartbeat a signed-in page beats through admin-ajax.php, answered as
Hooksfinal class27 +4The hook registry plugin code registers into and the engine fires.
Interactivityfinal class8 +15Server-side directive processing for the Interactivity API: the state and
KsesRulesfinal class8The HTML WordPress's kses functions let through: the elements and
LegacyPackfinal class9 +4WordPress's own browser files, for the plugins whose screens are built on
MainQueryfinal class2The query the request answers ($wp_query), as WordPress keeps it: the
MenuEventsfinal readonly class9 +3Menus and their items saved as the reference saves them, telling
MenuItemMarksfinal class1 +7The classes and current flags the reference gives a menu's items for the
Metafinal readonly class17 +1The four meta tables behind get_metadata and friends: reads by object, and the row-level writes the update and delete rules need.
MetaDatafinal class20 +4Metadata as WordPress's meta functions read and write it, for posts,
MetaKeysfinal class7 +2The meta keys code registers, kept where the reference keeps them
MetaTypesfinal class2Meta types a plugin brought, by the table it named on $wpdb as
NavMenufinal class6 +3wp_nav_menu()'s menu: the one the arguments name, its items marked for
NavMenuItemsfinal class3 +7Classic menu items as the reference serves them to walkers and plugins
NavigationFallbackfinal class7The navigation menu a navigation block falls back to
Noticesfinal class5 +1The debugging notices plugins and the engine raise: a deprecated function,
OEmbedfinal class7oEmbed as data: provider matching against the wildcard table, response parsing, and the markup an oEmbed payload becomes.
ObjectCachefinal class7The per-request object cache behind wp_cache_*: groups of keys, nothing persistent.
ObjectTermsfinal class1wp_get_object_terms's handling of taxonomies registered with their own
OptionLockfinal class2A lock the reference keeps as an option row (the revision upgrade's
OptionSanitizerfinal class1 +8A core option's value cleaned as the reference's sanitize_option cleans
OptionWritesfinal class6Options written the way add_option(), update_option() and delete_option()
Optionsfinal class21 +8Options as plugin code sees them, kept where the reference keeps them:
OptionsGroupfinal class4wp_cache's options group, where option reads are kept as the reference
OutputFloorfinal class3The output buffers the engine reads its pages from. The reference prints
Pagesfinal class5get_pages() as the reference shapes it: its arguments as a post query
Patternsfinal class14The block pattern, pattern category, and block style registries as data.
PlaceholderTracefinal class2Records every call into a generated placeholder while a site opts in by
Placeholdersfinal class2 +3The printf placeholders plugin code hands wpdb::prepare, filled the way
PluginActivationfinal class2 +1Switching a plugin on and off the way the reference's activate_plugin
PluginCallfinal class1Calls code a plugin, theme or drop-in registered (a hook callback, a
PluginFilesfinal class5A plugin's files as WordPress's plugin functions know them: where a
PluginRemovalfinal class2 +5Deleting plugins as the reference's delete_plugins does it: each in turn
PluginRequirementsfinal class1 +2Whether a plugin can be switched on here, as the reference's
PluginUpdatesfinal class2 +1The update offers the site's own plugins publish. A plugin that hosts
Pluginsfinal class6 +6Loads the site's plugins into the runtime the way the reference does:
PostCachesfinal class1A post's cached rows let go as WordPress lets them go: its row, its meta
PostDatafinal class4The loop's view of a post, as the reference's generate_postdata and
PostEventsfinal readonly class13 +2What the reference's REST controllers tell plugins about a post they
PostFieldsfinal class4 +1A post's fields put in a context as WordPress's sanitize_post_field puts
PostInsertfinal readonly class8 +1The decisions behind wp_insert_post: which columns a postarr fills, when
PostLinksfinal class11 +4Post addresses as the reference's link functions build them (probe
PostLocksfinal class1A post's edit lock (_edit_lock, "time:user"): who holds it while it is
PostLookupfinal readonly class11The post reads plugin code asks for by shape: a page by title, revisions, counts.
PostQueryfinal class3 +14WP_Query::get_posts as the reference runs it (probe wp-query-sql): the
PostQueryPartsfinal class3The pieces of one WP_Query run as the reference builds them and hands
PostQueryResultsfinal class1 +3What WP_Query does with its posts once it has them, as the reference does
PostQueryStatusfinal class2 +5WP_Query's post type and status clause as the reference writes it (probe
PostQueryTaxfinal class3 +5The taxonomy side of WP_Query as the reference runs it (probe
PostQueryWherefinal class4 +6The WHERE fragments WP_Query writes from its variables, in the reference's
PostReadsfinal class18 +5What WordPress's post functions tell about posts: a page's path and a
PostRevisionsfinal class10 +4A post's revisions as the reference's wp_save_post_revision keeps them
PostSavefinal class8 +3A REST save's columns through the filters the reference's save runs
PostTagsfinal class15 +1What the post template tags tell about a post (the one being read when
PostWritesfinal class20 +11Posts written as WordPress's post functions write them: a post stored
QueriedObjectfinal readonly class1 +1Which object a query is "about", read from its flags and variables: a term
QueryAnswersfinal class2Answers for queries the engine writes itself and already knows the result
QueryArgsfinal class5 +1Query arguments added to and taken from an address the way WordPress's
QueryFlagsfinal readonly class3 +2The conditional flags a set of query variables implies (is_single, is_archive,
RecipientLocalefinal class4An email written in its reader's language, as the reference writes each:
Recordsfinal class4 +2Posts, terms and comments as WordPress hands them to plugins: found by
Recoveryfinal readonly class10 +6Recovery from a fatal in someone else's code. When a plugin or theme
Refusalfinal readonly class0A refused operation, the way plugin code expects to read it: a code, a message, optional data. The facade turns it into WP_Error.
Registeredfinal class17 +1What is registered, looked up the way WordPress's lookups answer: post
RegisteredSettingsfinal class6Settings as register_setting keeps them (probe rest-settings): the
Registryfinal class29 +3Post types, taxonomies, and statuses as plugin code registers and reads
RequestHeadersfinal class9What WordPress's request functions say and send: the protocol the
RewriteRulesfinal class8 +10The rewrite rules WordPress makes from its structures, as the reference
RewriteStructsfinal class7The rewrite object's state and the structures it builds links and rules
Runtimefinal class38 +1The WordPress runtime the engine offers plugin code: the procedural
SafeUrlsfinal class1Whether an address is one the site may fetch (wp_http_validate_url): an
ScriptLoadingfinal class4 +3How a script may load, as the reference decides it (probe
ScriptModulesfinal class18 +10The script modules registry: registrations with typed dependencies, the
ScriptPackfinal class5 +1The site-supplied script pack: the `wp-*` JavaScript packages the engine
Shortcodesfinal class18 +2The shortcode registry plugin code fills with add_shortcode, and the
SiteInfofinal class3What WordPress tells about the site (get_bloginfo): its name and tagline,
SiteOptionsfinal class4 +1The network's options, as a single site keeps them: options stored not
SiteTimefinal class7Time as the site keeps it: its timezone (the named one, else the UTC
SiteUrlsfinal class13 +2The site's own addresses as WordPress builds them: the home and site
StoredObjectsfinal class5 +3The classes a stored blob may name and come back as. The serialized
SymbolGapfinal readonly class7 +2The part of the reference's interface the runtime does not answer: names in
SymbolTablefinal class7What a folder's PHP names, collected while its tokens are read: the
Symbolsfinal class5 +14A static read of what a plugin's PHP calls: global functions and classes
TagEditorfinal class8 +3Edits one start tag's attributes in place the way the reference's tag
TaxTermsfinal class2 +2The terms a taxonomy query's clause names, found as the reference finds
TemplateFilesfinal class12 +1The theme templates WordPress's template functions name: the index and
TermEventsfinal readonly class5 +2What the reference's REST terms controller tells plugins, for the
TermFieldsfinal class2 +2A term's fields in a context, as the reference's sanitize_term_field
TermLookupfinal class16 +3Terms looked up as WordPress's taxonomy functions find them: a list by
TermOrderfinal class3A term query's ORDER BY as the reference writes it (probe
TermQueryfinal readonly class12 +7Term reads in the shapes plugin code asks for: get_terms() arguments to
TermQueryRunnerfinal class1 +14WP_Term_Query::get_terms as the reference runs it (probe
TermQueryTreefinal class4 +1What a term query does with its rows, as the reference does it (probe
TermSavefinal class2 +5wp_insert_term and wp_update_term in the reference's order (probe
TermTagsfinal class17What WordPress's template tags tell about a post's terms: its terms of a
TermWriterfinal readonly class11 +1The decisions behind wp_delete_term and the object-term relationships:
TermWritesfinal class14 +4Terms written as WordPress's taxonomy functions write them: a term made,
ThemeModsfinal class5The active theme's settings (theme_mods_{stylesheet}) as WordPress keeps
ThemeSupportsfinal class13 +2What a theme supports, as add_theme_support keeps it (probe rest-themes):
ThemeSwitchfinal class5 +3Switching the theme as the reference does it, in two halves. The switch
Themesfinal class13The site's themes as WordPress names and finds them: the active
TimeSincefinal class1How long ago something was, as human_time_diff words it: the span
Transientsfinal class6Values kept for a while, as WordPress keeps them in options: the site's
Translationsfinal class10The translations a request loads, as WordPress's l10n functions load
TreeWalkfinal class5 +3The Walker contract's traversal: elements keyed by the walker's
TypePropsfinal class2 +2A post type's or taxonomy's properties from the arguments it was built
UpdateCountsfinal class4The updates waiting, as wp_get_update_data counts them for the user
Upgradefinal class10 +10What WP_Upgrader does with a package (probe upgrader), for the facade's
UserCountsfinal class2The user counts WordPress's user functions give: how many users hold each
UserEventsfinal readonly class4 +1What the reference's REST users controller tells plugins, for the
UserInsertfinal readonly class3The decisions behind wp_insert_user: what a new account needs, which email
UserOrderfinal class2 +1A user query's ORDER BY keys as the reference writes them (probe
UserQueryRolesfinal class1 +3A user query's roles and capabilities as the meta clauses the reference
UserQueryRunnerfinal class4 +6WP_User_Query as the reference runs it (probe wp-user-query-sql): the
UserSavefinal class3An account's fields through the filters the reference's wp_insert_user
UserStylesPostfinal class2A theme's user styles post as WordPress's theme.json resolver finds and
UserWritesfinal class13 +5Accounts written as WordPress's user functions write them: an account
VersionCheckfinal class4Whether the WordPress version Minn reports and the PHP it runs on meet a
WidgetAreasfinal class16 +4The widgets helper functions as the reference answers them (probe
WpdbFieldsfinal class13 +9The database object's writers and the charset work behind them (probe
WpdbReadsfinal class7 +4What the database object plugins hold as $wpdb does when it runs and reads
WpdbSetupfinal class8 +1How the database object plugins hold as $wpdb is set up (probe

Minn\Support 37

Escaping, serialized readers, small helpers.

ClassKindMethodsSummary
Accentsfinal class1 +1Accented and special characters to their plain spelling, from the
Backtracefinal class1A call stack named as wp_debug_backtrace_summary names it (probe
ByteSizefinal class1A count of bytes as a person reads it (size_format): in the largest unit
DirectoryListingfinal class1Walks a directory the way the filesystem API lists it: named entries, dot entries skipped, hidden ones optional, recursion optional.
Emailfinal class2The address rules the reference applies: a local part from a fixed
Entitiesfinal class4 +2HTML special-character encoding with the reference's quote styles and its
Escapefinal class9 +3Text made safe the way WordPress's escapers make it, each ending in the
FileHeadersfinal class1Header values from a plugin or theme file. The labels (Plugin Name,
FileTreefinal class5 +1Whole-directory reads and copies. The engine's own installer, the update
Filesfinal class3Recursive filesystem work behind WP_Filesystem_Direct: best-effort tree
Flagfinal class1A yes or no as WordPress reads one from loose input (wp_validate_boolean).
Hierarchyfinal class2 +1Loops in a parent chain, found with two walkers: a slow one that takes one
Ipfinal class1Addresses with their identifying tail removed, for logs and analytics that
Ksesfinal class21 +14The HTML a user without unfiltered_html may store. Tags outside the
KsesAttributesfinal class3Kses one attribute at a time, for the shortcode pass that runs inside
KsesCssfinal class2 +2The style attribute as kses keeps it (safecss_filter_attr): each
KsesEntitiesfinal class2 +1The named references kses keeps as written: the list captured from the
KsesPolicyfinal readonly class7What one kses pass allows: the tags, each tag's attributes (allowed
KsesProtocolsfinal class3The protocols an address may use, as kses judges them: the site's list
KsesValuesfinal class2 +1The value rules an allowlist attribute may carry, as the reference judges
Listsfinal class9 +1List shaping behind the facade's array utilities: arguments over their
Localefinal class3The locale's calendar and number vocabulary as data: the names a site
Markersfinal class2The BEGIN/END marker blocks insert_with_markers() maintains in files like
Pathsfinal class4File-system path and permission spellings, and whether a path is safe to use.
Sanitizefinal class9Text made fit to store the way WordPress's sanitizers make it, each ending
ScriptTagfinal class2 +1Script elements as the reference builds them (probe script-tags): the
SearchReplacefinal class1 +1String replace that walks serialized-PHP arrays of scalars without
Serializedfinal class10 +12Tolerant readers for the serialized-PHP blobs WordPress stores. Nothing
Signaturesfinal class1A file checked against detached Ed25519 signatures of its SHA-384 hash,
Slashesfinal class2 +1Magic-quote slashes the way WordPress keeps them (wp_slash, wp_unslash):
Sprintffinal class1A pattern filled one fragment at a time, as wp_sprintf fills it: "%%" is
SqlTablefinal class2The table a SQL statement is about, as wpdb::get_table_from_query reports
Textfinal class7Plain text shaped the way WordPress's formatting helpers shape it: cut to
Timefinal class1Human-scale spans: a number of seconds as the largest whole unit it fills, rounded, never below one.
TimezoneChoicefinal class1 +6The timezone choices a settings form offers (wp_timezone_choice, probe
Urlfinal class11 +1URL shaping the escaping and query helpers share: the character cleanup
Utf8final class13UTF-8 as the reference reads it. Well-formed means no overlong forms,

Minn\Theme 44

The block-theme reader, templates, global styles and the page renderer.

ClassKindMethodsSummary
ArchiveTitlefinal class2 +2The label and name an archive titles itself with: `Category:` around the
BodyClassesfinal class2 +1The body-class list a classic theme's body_class() starts from, in the
BodyFactsfinal readonly class0The facts about a page that decide the body classes a classic theme's
ClassicContentfinal class1What a classic theme's the_content() prints: the content as written (the
ClassicRendererfinal readonly class3 +4A whole page from the active classic theme: the reference's PHP template
ClassicThemefinal readonly class1The active classic (PHP-template) theme on disk. A theme is classic when
CustomCssfinal class2 +2Custom CSS as theme.json and blocks write it (a styles node's "css", a
EmbedRendererfinal readonly class2A post's embed page (its /embed/ address, or ?embed= on it), the card
FeatureSelectorsfinal class1A block's styles split between the selectors its metadata gives its
FeedHeadersfinal class1 +1The headers a feed is sent with, as the reference's send_headers sends
Folderfinal readonly class6A theme folder read from disk: its style.css headers, which folder its templates come from, its screenshot, whether it is a block theme.
FontFacesfinal class2 +5fonts a theme.json declares in the shape they are printed from.
FontNamesfinal class3The font library's names (probes fonts and font-writes): a font-family
FrontLifecyclefinal class3WordPress's front-end request steps around the main query, as WP::main
GlobalStylesfinal readonly class17 +8theme.json to CSS. Presets become custom properties on :root and their
HeadLinksfinal readonly class4The engine's own pieces of a page's head: its block stylesheet link,
Hierarchyfinal class9The classic template hierarchy: the candidate file names each template
MainQueryBridgefinal readonly class3 +4Stands the main query for a themed page and runs the front-end steps
NotModifiedfinal class0Raised once a reader's copy of a feed has been found current and the
PageRendererfinal readonly class5 +3A whole page from the active block theme: the template the resolution
PatternHeadersfinal class4A theme's pattern files read by their headers, as WP_Theme::get_block_patterns
PatternTextfinal class1 +10Block-theme patterns are PHP files whose only code is a handful of
Printedfinal class0Raised once a WordPress handler has printed a whole response (a sitemap,
QueryClassesfinal readonly class1 +5The body-class tokens the main query stands for, in the reference's
SpacingScalefinal class1 +2The spacing sizes a theme.json spacing scale makes (probe
StyleLayersfinal class3What plugins change about the global stylesheet's layers and nodes, for
StylePresetsfinal class9The preset side of theme.json: the colour, gradient, font-size,
StyleSettingsfinal class3 +2The settings and styles nodes as wp/v2/global-styles reports them:
Teaserenum0What a post's full text does with the part before its more tag
TemplateBufferfinal class1The reference includes a front-end template inside the template-enhancement
TemplateHierarchyfinal class1 +4The templates a block theme falls back through for a template slug, as
TemplateIndexfinal class14 +7Every block template and template part the site offers, in the order the
TemplatePartThemefinal readonly class1 +3A template-part block inside a template says which theme's part it means.
TemplatePatternsfinal readonly class1 +4A template can name a pattern instead of carrying its blocks, and the
TemplateRecordfinal readonly class2One block template or template part, whatever it came from: a theme
TemplateWriterfinal readonly class4 +3Saving and removing block templates. A template the theme ships is never
Templatesfinal readonly class8 +6Which template renders a resolution, and where its markup comes from:
Themefinal class20 +7The active block theme on disk, read as data: theme.json, the templates
ThemeHeadersfinal class3 +2A theme's headers as the reference's WP_Theme reads and shows them
ThemeJsonDatafinal class2 +1The theme's theme.json as plugins and the theme's own functions may
ThemeStylesfinal readonly class7 +4The active theme's global styles as wp/v2/global-styles/themes/{stylesheet}
TreeStylesfinal readonly class15 +2The CSS one theme.json tree writes, as WP_Theme_JSON keeps the tree
Typographyfinal class3 +1Font sizes as the reference writes them (probe plugin-queue3): a size in
UserStylesfinal readonly class6The site editor's saved global styles: one wp_global_styles post per

Minn\Widgets 3

ClassKindMethodsSummary
TextWidgetsfinal class5 +1The text and custom HTML widgets' behaviour (WP_Widget_Text,
WidgetFormsfinal class14 +4The core widgets' settings forms, the markup a widget's form() prints and
WidgetTemplatesfinal class3 +3The Underscore templates the Text and Custom HTML widgets print for their