PluginProbe
Gutenberg / 22.7.0
Gutenberg v22.7.0
24.0.0 23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 All 403 releases
← All changes | lib/block-supports/elements.php +8 -28 23.5.122.7.0 View file →
@@ -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 }