<?php

function wp_get_block_default_classname($block_name)
{
    $classname = 'wp-block-' . preg_replace('/^core-/', '', str_replace('/', '-', $block_name));
    $classname = apply_filters('block_default_classname', $classname, $block_name);
    return $classname;
}
function wp_apply_generated_classname_support($block_type, $block_attributes)
{
    $has_generated_classname_support = true;
    $attributes = array();
    if (property_exists($block_type, 'supports')) {
        $has_generated_classname_support = _wp_array_get($block_type->supports, array('className'), true);
    }
    if ($has_generated_classname_support) {
        $block_classname = wp_get_block_default_classname($block_type->name);
        if ($block_classname) {
            $attributes['class'] = $block_classname;
        }
    }
    return $attributes;
}
WP_Block_Supports::get_instance()->register('generated-classname', array('apply' => 'wp_apply_generated_classname_support'));