| @@ -16,15 +16,23 @@ | ||
| 16 | 16 | */ |
| 17 | 17 | function gutenberg_render_block_core_archives( $attributes ) { |
| 18 | 18 | $show_post_count = ! empty( $attributes['showPostCounts'] ); |
| 19 | 19 | |
| 20 | - $class = ''; | |
| 20 | + $class = 'wp-block-archives'; | |
| 21 | 21 | |
| 22 | + if ( isset( $attributes['align'] ) ) { | |
| 23 | + $class .= " align{$attributes['align']}"; | |
| 24 | + } | |
| 25 | + | |
| 26 | + if ( isset( $attributes['className'] ) ) { | |
| 27 | + $class .= " {$attributes['className']}"; | |
| 28 | + } | |
| 29 | + | |
| 22 | 30 | if ( ! empty( $attributes['displayAsDropdown'] ) ) { |
| 23 | 31 | |
| 24 | 32 | $class .= ' wp-block-archives-dropdown'; |
| 25 | 33 | |
| 26 | - $dropdown_id = uniqid( 'wp-block-archives-' ); | |
| 34 | + $dropdown_id = esc_attr( uniqid( 'wp-block-archives-' ) ); | |
| 27 | 35 | $title = __( 'Archives' ); |
| 28 | 36 | |
| 29 | 37 | /** This filter is documented in wp-includes/widgets/class-wp-widget-archives.php */ |
| 30 | 38 | $dropdown_args = apply_filters( |
| @@ -39,12 +47,8 @@ | ||
| 39 | 47 | $dropdown_args['echo'] = 0; |
| 40 | 48 | |
| 41 | 49 | $archives = wp_get_archives( $dropdown_args ); |
| 42 | 50 | |
| 43 | - $classnames = esc_attr( $class ); | |
| 44 | - | |
| 45 | - $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classnames ) ); | |
| 46 | - | |
| 47 | 51 | switch ( $dropdown_args['type'] ) { |
| 48 | 52 | case 'yearly': |
| 49 | 53 | $label = __( 'Select Year' ); |
| 50 | 54 | break; |
| @@ -61,15 +65,17 @@ | ||
| 61 | 65 | $label = __( 'Select Post' ); |
| 62 | 66 | break; |
| 63 | 67 | } |
| 64 | 68 | |
| 65 | - $block_content = '<label for="' . esc_attr( $dropdown_id ) . '">' . esc_html( $title ) . '</label> | |
| 66 | - <select id="' . esc_attr( $dropdown_id ) . '" name="archive-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;"> | |
| 67 | - <option value="">' . esc_html( $label ) . '</option>' . $archives . '</select>'; | |
| 69 | + $label = esc_attr( $label ); | |
| 68 | 70 | |
| 71 | + $block_content = '<label class="screen-reader-text" for="' . $dropdown_id . '">' . $title . '</label> | |
| 72 | + <select id="' . $dropdown_id . '" name="archive-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;"> | |
| 73 | + <option value="">' . $label . '</option>' . $archives . '</select>'; | |
| 74 | + | |
| 69 | 75 | return sprintf( |
| 70 | - '<div %1$s>%2$s</div>', | |
| 71 | - $wrapper_attributes, | |
| 76 | + '<div class="%1$s">%2$s</div>', | |
| 77 | + esc_attr( $class ), | |
| 72 | 78 | $block_content |
| 73 | 79 | ); |
| 74 | 80 | } |
| 75 | 81 | |
| @@ -87,21 +93,22 @@ | ||
| 87 | 93 | $archives_args['echo'] = 0; |
| 88 | 94 | |
| 89 | 95 | $archives = wp_get_archives( $archives_args ); |
| 90 | 96 | |
| 91 | - $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $class ) ); | |
| 97 | + $classnames = esc_attr( $class ); | |
| 92 | 98 | |
| 93 | 99 | if ( empty( $archives ) ) { |
| 100 | + | |
| 94 | 101 | return sprintf( |
| 95 | - '<div %1$s>%2$s</div>', | |
| 96 | - $wrapper_attributes, | |
| 102 | + '<div class="%1$s">%2$s</div>', | |
| 103 | + $classnames, | |
| 97 | 104 | __( 'No archives to show.' ) |
| 98 | 105 | ); |
| 99 | 106 | } |
| 100 | 107 | |
| 101 | 108 | return sprintf( |
| 102 | - '<ul %1$s>%2$s</ul>', | |
| 103 | - $wrapper_attributes, | |
| 109 | + '<ul class="%1$s">%2$s</ul>', | |
| 110 | + $classnames, | |
| 104 | 111 | $archives |
| 105 | 112 | ); |
| 106 | 113 | } |
| 107 | 114 | |