Block metadata used to live in three places — PHP registration, JavaScript registration and an enqueue call — and block.json is all three. apiVersion: 2 is the one…
The duotone effect is implemented as an SVG filter definition injected into the page, which is surprising the first time it appears in a diff of the rendered…
A theme spent a hundred lines on add_theme_support calls and a stylesheet arguing with the editor, and 5.8 replaced both with one file. “custom”: false removes the arbitrary…
A transient with an expiry is stored as two rows in the options table, and nothing deletes an expired one until something asks for it. Expired transients are…
A registered widget with no block equivalent renders inside a legacy widget block, which keeps it working and keeps it visible as unfinished. Hiding from the picker while…
A set of related editor features had eleven separate opt-ins, and appearanceTools turns on the sensible ones together. The set is defined by WordPress rather than by the…
5.8 replaced the widget screen with a block editor, and six custom widgets became one HTML block each with the rendered markup pasted in. The opt-out is legitimate…