“Things are in flux with WordPress right now.”

WordPress has been in flux for the duration of the block editor, and not just since it was integrated into core with the release of WordPress 5.0. There were many months leading up to that release, for those following along on Github, where it was difficult to parse exactly where things were heading.

For years it had been possible to write a well-coded custom theme and set a client up with a website, with confidence it was safe to run core updates without major issues. WordPress was a mature project that generated very little in the way of unexpected maintenance costs, a major selling point for any organisations working on a shoestring budget.

A simple example of the kind of anxiety that now hangs over every core update: earlier this year, the Button block was replaced in the block inserter panel by a Buttons block. The Button block continued to exist but became a child of the Buttons block.

The result of this change, for anyone who had opted to manage block availability by using the allowed_block_types filter, was buttons were suddenly no longer available in the editor (existing buttons were still obviously rendered on the front-end). Defining ‘core/button’ against that filter had previously ensured the Button block remained available in the editor, but now it was a dependent of the new Buttons block ‘core/buttons’ also needed to be on the allowlist for allowed_block_types.

I never expected I’d need to add two definitions to an allowlist to permit a single block. I also can’t read the future, so hadn’t added ‘core/buttons’ to custom themes for sites launched during the previous year.