balmet.com

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

custom-classname.php (1692B)


      1 <?php
      2 /**
      3  * Custom classname block support flag.
      4  *
      5  * @package WordPress
      6  * @since 5.6.0
      7  */
      8 
      9 /**
     10  * Registers the custom classname 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_custom_classname_support( $block_type ) {
     18 	$has_custom_classname_support = block_has_support( $block_type, array( 'customClassName' ), true );
     19 
     20 	if ( $has_custom_classname_support ) {
     21 		if ( ! $block_type->attributes ) {
     22 			$block_type->attributes = array();
     23 		}
     24 
     25 		if ( ! array_key_exists( 'className', $block_type->attributes ) ) {
     26 			$block_type->attributes['className'] = array(
     27 				'type' => 'string',
     28 			);
     29 		}
     30 	}
     31 }
     32 
     33 /**
     34  * Add the custom classnames to the output.
     35  *
     36  * @since 5.6.0
     37  * @access private
     38  *
     39  * @param  WP_Block_Type $block_type       Block Type.
     40  * @param  array         $block_attributes Block attributes.
     41  *
     42  * @return array Block CSS classes and inline styles.
     43  */
     44 function wp_apply_custom_classname_support( $block_type, $block_attributes ) {
     45 	$has_custom_classname_support = block_has_support( $block_type, array( 'customClassName' ), true );
     46 	$attributes                   = array();
     47 	if ( $has_custom_classname_support ) {
     48 		$has_custom_classnames = array_key_exists( 'className', $block_attributes );
     49 
     50 		if ( $has_custom_classnames ) {
     51 			$attributes['class'] = $block_attributes['className'];
     52 		}
     53 	}
     54 
     55 	return $attributes;
     56 }
     57 
     58 // Register the block support.
     59 WP_Block_Supports::get_instance()->register(
     60 	'custom-classname',
     61 	array(
     62 		'register_attribute' => 'wp_register_custom_classname_support',
     63 		'apply'              => 'wp_apply_custom_classname_support',
     64 	)
     65 );