[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

/wp-includes/blocks/ -> calendar.php (source)

   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' );


Generated: Mon May 10 01:00:04 2021 Cross-referenced by PHPXref 0.7.1