/var/www/html_de/wp-includes/block-supports/aria-label.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
/**
 * Aria label block support flag.
 *
 * @package WordPress
 * @since 6.8.0
 */

/**
 * Registers the aria-label block attribute for block types that support it.
 *
 * @since 6.8.0
 * @access private
 *
 * @param WP_Block_Type $block_type Block Type.
 */
function wp_register_aria_label_support$block_type ) {
    
$has_aria_label_support block_has_support$block_type, array( 'ariaLabel' ), false );

    if ( ! 
$has_aria_label_support ) {
        return;
    }

    if ( ! 
$block_type->attributes ) {
        
$block_type->attributes = array();
    }

    if ( ! 
array_key_exists'ariaLabel'$block_type->attributes ) ) {
        
$block_type->attributes['ariaLabel'] = array(
            
'type' => 'string',
        );
    }
}

/**
 * Add the aria-label to the output.
 *
 * @since 6.8.0
 * @access private
 *
 * @param WP_Block_Type $block_type       Block Type.
 * @param array         $block_attributes Block attributes.
 *
 * @return array Block aria-label.
 */
function wp_apply_aria_label_support$block_type$block_attributes ) {
    if ( ! 
$block_attributes ) {
        return array();
    }

    
$has_aria_label_support block_has_support$block_type, array( 'ariaLabel' ), false );
    if ( ! 
$has_aria_label_support ) {
        return array();
    }

    
$has_aria_label array_key_exists'ariaLabel'$block_attributes );
    if ( ! 
$has_aria_label ) {
        return array();
    }
    return array( 
'aria-label' => $block_attributes['ariaLabel'] );
}

// Register the block support.
WP_Block_Supports::get_instance()->register(
    
'aria-label',
    array(
        
'register_attribute' => 'wp_register_aria_label_support',
        
'apply'              => 'wp_apply_aria_label_support',
    )
);