WordPress 6.1 also comes with a considerable performance improvement for handling blocks in plugins and in the WordPress backend (PHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher).
block.json Registration Method
Starting with WordPress 5.8, extenders were encouraged to begin to utilize
However, while this
block.json scanning convention is extremely convenient, it does add additional processing when core Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks are instantiated. On each page load, block Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. registration undergoes the following steps:
- Scan folders for
- When a
block.json file is found, read its contents into memory.
json_decode on the file contents to convert it to a PHP array.
- Register the block using the decoded data.
With over 70 core block files to scan and load, this presented an opportunity for optimization.
Core Block Registration Update
To reduce filesystem reads and processing of
block.json files, which should benefit all WordPress sites and improve performance, block registration has been updated to:
- Introduce a new Grunt task (
copy:block-json) that scans and converts core
block.json files to PHP arrays and stores them in a single
blocks-json.php at build time.
- Use the new
blocks-json.php file in the
- Assign the block registration data to a static variable (cache) so that it’s only loaded once per request.
blocks-json.php is a native PHP array, it can be used directly without additional conversion.
The conversion from
block.json files to PHP arrays is achieved through the
json2php package, which is already utilized in Core and Gutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/.
Props to @aristath for source material and collaboration, and to @milana_cap for review of this dev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase..