block_core_gallery_data_id_backcompatibility

The timeline below displays how wordpress function block_core_gallery_data_id_backcompatibility has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 5.9

/**
 * Server-side rendering of the `core/gallery` block.
 *
 * @package WordPress
 */
/**
 * Handles backwards compatibility for Gallery Blocks,
 * whose images feature a `data-id` attribute.
 *
 * Now that the Gallery Block contains inner Image Blocks,
 * we add a custom `data-id` attribute before rendering the gallery
 * so that the Image Block can pick it up in its render_callback.
 *
 * @param array $parsed_block The block being rendered.
 * @return array The migrated block object.
 */
function block_core_gallery_data_id_backcompatibility($parsed_block)
{
    if ('core/gallery' === $parsed_block['blockName']) {
        foreach ($parsed_block['innerBlocks'] as $key => $inner_block) {
            if ('core/image' === $inner_block['blockName']) {
                if (!isset($parsed_block['innerBlocks'][$key]['attrs']['data-id']) && isset($inner_block['attrs']['id'])) {
                    $parsed_block['innerBlocks'][$key]['attrs']['data-id'] = esc_attr($inner_block['attrs']['id']);
                }
            }
        }
    }
    return $parsed_block;
}