ru-se.com

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

align.php (1728B)


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