wp-includes/class-wp-block-metadata-registry.php:20Class used for managing block metadata collections.
Every hook that fires from inside WP_Block_Metadata_Registry, in the order it appears in the class, grouped by the method that fires it.
$collectionsarray<string,private static$last_matched_collectionstring|nullprivate static$default_collection_rootsstring[]|nullprivate staticclass WP_Block_Metadata_Registry { /** * Container for storing block metadata collections. * * Each entry maps a base path to its corresponding metadata and callback. * * @since 6.7.0 * @var array<string, array<string, mixed>> */ private static $collections = array(); /** * Caches the last matched collection path for performance optimization. * * @since 6.7.0 * @var string|null */ private static $last_matched_collection = null; /** * Stores the default allowed collection root paths. * * @since 6.7.2 * @var string[]|null */ private static $default_collection_roots = null; /** * Registers a block metadata collection. * * This method allows registering a collection of block metadata from a single * manifest file, improving performance for large sets of blocks. * * The manifest file should be a PHP file that returns an associative array, where * the keys are the block identifiers (without their namespace) and the values are * the corresponding block metadata arrays. The block identifiers must match the * parent directory name for the respective `block.json` file. * * Example manifest file structure: * ``` * return array( * 'example-block' => array( * 'title' => 'Example Block', * 'category' => 'widgets', * 'icon' => 'smiley', * // ... other block metadata * ), * 'another-block' => array( * 'title' => 'Another Block', * 'category' => 'formatting', * 'icon' => 'star-filled', * // ... other block metadata * ), * // ... more block metadata entries * ); * ``` * * @since 6.7.0 * * @param string $path The absolute base path for the collection ( e.g., WP_PLUGIN_DIR . '/my-plugin/blocks/' ). * @param string $manifest The absolute path to the manifest file containing the metadata collection. * @return bool True if the collection was registered successfully, false otherwise. */ public static function register_collection( $path, $manifest ) { $path = wp_normalize_path( rtrim( $path, '/' ) ); $collection_roots = self::get_default_collection_roots(); /** * Filters the root directory paths for block metadata collections. * * Any block metadata collection that is registered must not use any of these paths, or any parent directory * path of them. Most commonly, block metadata collections should reside within one of these paths, though in * some scenarios they may also reside in entirely different directories (e.g. in case of symlinked plugins). * * Example: * * It is allowed to register a collection with path `WP_PLUGIN_DIR . '/my-plugin'`. * * It is not allowed to register a collection with path `WP_PLUGIN_DIR`. * * It is not allowed to register a collection with path `dirname( WP_PLUGIN_DIR )`.Introduced in 6.7.0. One change between 6.7.7 and 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
get_collection_block_metadata_files() added.verified against sourcesrc/wp-includes/class-wp-block-metadata-registry.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.