block_core_tabs_generate_tabs_list()WP 7.1.0

Extract tabs list from tab-panel innerblocks.

No Hooks.

Returns

array. List of tab IDs.

Usage

block_core_tabs_generate_tabs_list( $innerblocks, $tabs_id ): array;
$innerblocks(array)
Parsed inner blocks of tabs block.
Default: array()
$tabs_id(string)
Unique ID for the tabs instance, used to generate tab IDs.
Default: ''

Changelog

Since 7.1.0 Introduced.

block_core_tabs_generate_tabs_list() code WP 7.1

function block_core_tabs_generate_tabs_list( array $innerblocks = array(), string $tabs_id = '' ): array {
	$tabs_list = array();

	// Find tab-panel block
	foreach ( $innerblocks as $inner_block ) {
		if ( 'core/tab-panels' === ( $inner_block['blockName'] ?? '' ) ) {
			$tab_index = 0;
			foreach ( $inner_block['innerBlocks'] ?? array() as $tab_block ) {
				if ( 'core/tab-panel' === ( $tab_block['blockName'] ?? '' ) ) {
					$attrs = $tab_block['attrs'] ?? array();

					$tab_id = ! empty( $attrs['anchor'] )
						? $attrs['anchor']
						: ( ! empty( $tabs_id )
							? $tabs_id . '-tab-' . $tab_index
							: 'tab-' . $tab_index );

					$tabs_list[] = esc_attr( $tab_id );
					++$tab_index;
				}
			}
			break;
		}
	}

	return $tabs_list;
}