[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

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

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


Generated: Fri Mar 29 01:00:02 2024 Cross-referenced by PHPXref 0.7.1