<?php

function render_block_core_calendar($attributes)
{
    global $monthnum, $year;
    $previous_monthnum = $monthnum;
    $previous_year = $year;
    if (isset($attributes['month']) && isset($attributes['year'])) {
        $permalink_structure = get_option('permalink_structure');
        if (strpos($permalink_structure, '%monthnum%') !== false && strpos($permalink_structure, '%year%') !== false) {
            $monthnum = $attributes['month'];
            $year = $attributes['year'];
        }
    }
    $wrapper_attributes = get_block_wrapper_attributes();
    $output = sprintf('<div %1$s>%2$s</div>', $wrapper_attributes, get_calendar(true, false));
    $monthnum = $previous_monthnum;
    $year = $previous_year;
    return $output;
}
function register_block_core_calendar()
{
    register_block_type_from_metadata(__DIR__ . '/calendar', array('render_callback' => 'render_block_core_calendar'));
}
add_action('init', 'register_block_core_calendar');