| @@ -231,45 +231,25 @@ | ||
| 231 | 231 | * block's markup. |
| 232 | 232 | * |
| 233 | 233 | * @see gutenberg_render_elements_support_styles |
| 234 | 234 | * |
| 235 | - * @param string $block_content Rendered block content. | |
| 236 | - * @param array $block Block object. | |
| 237 | - * @return string Filtered block content. | |
| 235 | + * @param string $block_content Rendered block content. | |
| 236 | + * @param array $block Block object. | |
| 238 | 237 | * |
| 239 | - * @phpstan-param array{ | |
| 240 | - * attrs: array{ | |
| 241 | - * className?: string, | |
| 242 | - * ... | |
| 243 | - * }, | |
| 244 | - * ... | |
| 245 | - * } $block | |
| 238 | + * @return string Filtered block content. | |
| 246 | 239 | */ |
| 247 | 240 | function gutenberg_render_elements_class_name( $block_content, $block ) { |
| 248 | - $class_name_attr = $block['attrs']['className'] ?? null; | |
| 249 | - $class_name_prefix = 'wp-elements-'; | |
| 250 | - if ( ! is_string( $class_name_attr ) || ! str_contains( $class_name_attr, $class_name_prefix ) ) { | |
| 251 | - return $block_content; | |
| 252 | - } | |
| 241 | + $class_string = $block['attrs']['className'] ?? ''; | |
| 242 | + preg_match( '/\bwp-elements-\S+\b/', $class_string, $matches ); | |
| 253 | 243 | |
| 254 | - // Parse out the 'wp-elements-*' class name. | |
| 255 | - $matched_class_name = null; | |
| 256 | - $token_delimiter = " \t\f\r\n"; | |
| 257 | - $class_token = strtok( $class_name_attr, $token_delimiter ); | |
| 258 | - while ( false !== $class_token ) { | |
| 259 | - if ( str_starts_with( $class_token, $class_name_prefix ) ) { | |
| 260 | - $matched_class_name = $class_token; | |
| 261 | - break; | |
| 262 | - } | |
| 263 | - $class_token = strtok( $token_delimiter ); | |
| 264 | - } | |
| 265 | - if ( null === $matched_class_name ) { | |
| 244 | + if ( empty( $matches ) ) { | |
| 266 | 245 | return $block_content; |
| 267 | 246 | } |
| 268 | 247 | |
| 269 | 248 | $tags = new WP_HTML_Tag_Processor( $block_content ); |
| 249 | + | |
| 270 | 250 | if ( $tags->next_tag() ) { |
| 271 | - $tags->add_class( $matched_class_name ); | |
| 251 | + $tags->add_class( $matches[0] ); | |
| 272 | 252 | } |
| 273 | 253 | |
| 274 | 254 | return $tags->get_updated_html(); |
| 275 | 255 | } |