[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

/wp-includes/block-supports/ -> align.php (source)

   1  <?php
   2  /**
   3   * Align block support flag.
   4   *
   5   * @package WordPress
   6   * @since 5.6.0
   7   */
   8  
   9  /**
  10   * Registers the align block attribute for block types that support it.
  11   *
  12   * @since 5.6.0
  13   * @access private
  14   *
  15   * @param WP_Block_Type $block_type Block Type.
  16   */
  17  function wp_register_alignment_support( $block_type ) {
  18      $has_align_support = block_has_support( $block_type, array( 'align' ), false );
  19      if ( $has_align_support ) {
  20          if ( ! $block_type->attributes ) {
  21              $block_type->attributes = array();
  22          }
  23  
  24          if ( ! array_key_exists( 'align', $block_type->attributes ) ) {
  25              $block_type->attributes['align'] = array(
  26                  'type' => 'string',
  27                  'enum' => array( 'left', 'center', 'right', 'wide', 'full', '' ),
  28              );
  29          }
  30      }
  31  }
  32  
  33  /**
  34   * Add CSS classes for block alignment to the incoming attributes array.
  35   * This will be applied to the block markup in the front-end.
  36   *
  37   * @since 5.6.0
  38   * @access private
  39   *
  40   * @param WP_Block_Type $block_type       Block Type.
  41   * @param array         $block_attributes Block attributes.
  42   *
  43   * @return array Block alignment CSS classes and inline styles.
  44   */
  45  function wp_apply_alignment_support( $block_type, $block_attributes ) {
  46      $attributes        = array();
  47      $has_align_support = block_has_support( $block_type, array( 'align' ), false );
  48      if ( $has_align_support ) {
  49          $has_block_alignment = array_key_exists( 'align', $block_attributes );
  50  
  51          if ( $has_block_alignment ) {
  52              $attributes['class'] = sprintf( 'align%s', $block_attributes['align'] );
  53          }
  54      }
  55  
  56      return $attributes;
  57  }
  58  
  59  // Register the block support.
  60  WP_Block_Supports::get_instance()->register(
  61      'align',
  62      array(
  63          'register_attribute' => 'wp_register_alignment_support',
  64          'apply'              => 'wp_apply_alignment_support',
  65      )
  66  );


Generated: Mon Jun 14 01:00:05 2021 Cross-referenced by PHPXref 0.7.1