WordPress Version: 6.3
/**
* Returns an array of area variation objects for the template part block.
*
* @param array $instance_variations The variations for instances.
*
* @return array Array containing the block variation objects.
*/
function build_template_part_block_area_variations($instance_variations)
{
$variations = array();
$defined_areas = get_allowed_block_template_part_areas();
foreach ($defined_areas as $area) {
if ('uncategorized' !== $area['area']) {
$has_instance_for_area = false;
foreach ($instance_variations as $variation) {
if ($variation['attributes']['area'] === $area['area']) {
$has_instance_for_area = true;
break;
}
}
$scope = $has_instance_for_area ? array() : array('inserter');
$variations[] = array('name' => 'area_' . $area['area'], 'title' => $area['label'], 'description' => $area['description'], 'attributes' => array('area' => $area['area']), 'scope' => $scope, 'icon' => $area['icon']);
}
}
return $variations;
}