balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

calendar.php (1569B)


      1 <?php
      2 /**
      3  * Server-side rendering of the `core/calendar` block.
      4  *
      5  * @package WordPress
      6  */
      7 
      8 /**
      9  * Renders the `core/calendar` block on server.
     10  *
     11  * @param array $attributes The block attributes.
     12  *
     13  * @return string Returns the block content.
     14  */
     15 function render_block_core_calendar( $attributes ) {
     16 	global $monthnum, $year;
     17 
     18 	$previous_monthnum = $monthnum;
     19 	$previous_year     = $year;
     20 
     21 	if ( isset( $attributes['month'] ) && isset( $attributes['year'] ) ) {
     22 		$permalink_structure = get_option( 'permalink_structure' );
     23 		if (
     24 			strpos( $permalink_structure, '%monthnum%' ) !== false &&
     25 			strpos( $permalink_structure, '%year%' ) !== false
     26 		) {
     27 			// phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
     28 			$monthnum = $attributes['month'];
     29 			// phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
     30 			$year = $attributes['year'];
     31 		}
     32 	}
     33 
     34 	$wrapper_attributes = get_block_wrapper_attributes();
     35 	$output             = sprintf(
     36 		'<div %1$s>%2$s</div>',
     37 		$wrapper_attributes,
     38 		get_calendar( true, false )
     39 	);
     40 
     41 	// phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
     42 	$monthnum = $previous_monthnum;
     43 	// phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
     44 	$year = $previous_year;
     45 
     46 	return $output;
     47 }
     48 
     49 /**
     50  * Registers the `core/calendar` block on server.
     51  */
     52 function register_block_core_calendar() {
     53 	register_block_type_from_metadata(
     54 		__DIR__ . '/calendar',
     55 		array(
     56 			'render_callback' => 'render_block_core_calendar',
     57 		)
     58 	);
     59 }
     60 
     61 add_action( 'init', 'register_block_core_calendar' );