next_tag() && $tag->get_tag() === 'SECTION' && $tag->get_attribute( 'data-ondavilo-background' ) === '2' && $tag->has_class( 'sflo-background-block' ); } return false; } /** * Add an escaped decorative wrapper to legacy parsed data, before native rendering. * * This changes no stored post content. Child blocks, their order, and their native * rendering are untouched. New statically saved blocks already contain the wrapper. * * @param array $parsed_block Parsed block data supplied by WordPress. * @return array Parsed data with bounded, escaped wrapper fragments for old blocks. */ function sflo_background_legacy_data( $parsed_block ) { if ( PHP_INT_SIZE < 8 || ( $parsed_block['blockName'] ?? null ) !== 'sectionflow-local/background' || ! isset( $parsed_block['innerContent'] ) || ! is_array( $parsed_block['innerContent'] ) || sflo_background_has_saved_wrapper( $parsed_block['innerContent'] ) ) { return $parsed_block; } $attributes = isset( $parsed_block['attrs'] ) && is_array( $parsed_block['attrs'] ) ? $parsed_block['attrs'] : array(); $c = sflo_background_normalize( $attributes ); $class = 'wp-block-sectionflow-local-background sflo-background-block sflo-background-family-' . $c['family']; if ( $c['motion'] ) { $class .= ' sflo-background-motion'; } if ( isset( $attributes['align'] ) && in_array( $attributes['align'], array( 'wide', 'full' ), true ) ) { $class .= ' align' . $attributes['align']; } $open = '
'; $close = '
'; array_unshift( $parsed_block['innerContent'], $open ); $parsed_block['innerContent'][] = $close; $parsed_block['innerHTML'] = $open . ( $parsed_block['innerHTML'] ?? '' ) . $close; return $parsed_block; } add_filter( 'render_block_data', 'sflo_background_legacy_data' );