wp/wp-includes/blocks/categories.php
changeset 18 be944660c56a
parent 16 a86126ab1dd4
child 19 3d72ae0968f4
equal deleted inserted replaced
17:34716fd837a4 18:be944660c56a
    26 
    26 
    27 	if ( ! empty( $attributes['displayAsDropdown'] ) ) {
    27 	if ( ! empty( $attributes['displayAsDropdown'] ) ) {
    28 		$id                       = 'wp-block-categories-' . $block_id;
    28 		$id                       = 'wp-block-categories-' . $block_id;
    29 		$args['id']               = $id;
    29 		$args['id']               = $id;
    30 		$args['show_option_none'] = __( 'Select Category' );
    30 		$args['show_option_none'] = __( 'Select Category' );
    31 		$wrapper_markup           = '<div class="%1$s">%2$s</div>';
    31 		$wrapper_markup           = '<div %1$s><label class="screen-reader-text" for="' . $id . '">' . __( 'Categories' ) . '</label>%2$s</div>';
    32 		$items_markup             = wp_dropdown_categories( $args );
    32 		$items_markup             = wp_dropdown_categories( $args );
    33 		$type                     = 'dropdown';
    33 		$type                     = 'dropdown';
    34 
    34 
    35 		if ( ! is_admin() ) {
    35 		if ( ! is_admin() ) {
    36 			$wrapper_markup .= build_dropdown_script_block_core_categories( $id );
    36 			// Inject the dropdown script immediately after the select dropdown.
       
    37 			$items_markup = preg_replace(
       
    38 				'#(?<=</select>)#',
       
    39 				build_dropdown_script_block_core_categories( $id ),
       
    40 				$items_markup,
       
    41 				1
       
    42 			);
    37 		}
    43 		}
    38 	} else {
    44 	} else {
    39 		$wrapper_markup = '<ul class="%1$s">%2$s</ul>';
    45 		$wrapper_markup = '<ul %1$s>%2$s</ul>';
    40 		$items_markup   = wp_list_categories( $args );
    46 		$items_markup   = wp_list_categories( $args );
    41 		$type           = 'list';
    47 		$type           = 'list';
    42 	}
    48 	}
    43 
    49 
    44 	$class = "wp-block-categories wp-block-categories-{$type}";
    50 	$wrapper_attributes = get_block_wrapper_attributes( array( 'class' => "wp-block-categories-{$type}" ) );
    45 
       
    46 	if ( isset( $attributes['align'] ) ) {
       
    47 		$class .= " align{$attributes['align']}";
       
    48 	}
       
    49 
       
    50 	if ( isset( $attributes['className'] ) ) {
       
    51 		$class .= " {$attributes['className']}";
       
    52 	}
       
    53 
    51 
    54 	return sprintf(
    52 	return sprintf(
    55 		$wrapper_markup,
    53 		$wrapper_markup,
    56 		esc_attr( $class ),
    54 		$wrapper_attributes,
    57 		$items_markup
    55 		$items_markup
    58 	);
    56 	);
    59 }
    57 }
    60 
    58 
    61 /**
    59 /**