wpseek.com
A WordPress-centric search engine for devs and theme authors



block_core_tab_panel_render › WordPress Function

Since7.1.0
Deprecatedn/a
block_core_tab_panel_render ( $attributes, $content, $block )
Parameters: (3)
  • (array) $attributes Block attributes.
    Required: Yes
  • (string) $content Block content.
    Required: Yes
  • (WP_Block) $block Block instance.
    Required: Yes
Returns:
  • (string) Updated HTML.
Defined at:
Codex:

Render callback for core/tab-panel.



Source

function block_core_tab_panel_render( array $attributes, string $content, \WP_Block $block ): string {
	$tabs_id = $block->context['core/tabs-id'] ?? '';

	static $tab_counters = array();

	if ( ! isset( $tab_counters[ $tabs_id ] ) ) {
		$tab_counters[ $tabs_id ] = 0;
	}

	$tab_index = $tab_counters[ $tabs_id ];
	++$tab_counters[ $tabs_id ];

	$tag_processor = new WP_HTML_Tag_Processor( $content );
	$tag_processor->next_tag( array( 'class_name' => 'wp-block-tab-panel' ) );

	// Use the user's custom anchor if present, otherwise fall back to
	// the generated position-based ID.
	$tab_id = (string) $tag_processor->get_attribute( 'id' );
	if ( empty( $tab_id ) ) {
		$tab_id = ! empty( $tabs_id )
			? $tabs_id . '-tab-' . $tab_index
			: 'tab-' . $tab_index;
		$tag_processor->set_attribute( 'id', $tab_id );
	}

	$tag_processor->set_attribute( 'aria-labelledby', 'tab__' . $tab_id );
	$tag_processor->set_attribute( 'data-wp-bind--hidden', '!state.isActiveTab' );

	return (string) $tag_processor->get_updated_html();
}