getAttribute( 'style' ); $css = $submenu_style ? $submenu_style . ';' : ''; foreach ( $styles as $property => $value ) { $css .= $value ? "$property:$value;" : ''; } $submenu->setAttribute( 'style', $css ); return $dom->saveHTML(); } /** * Add support for mega menus. * * @param string $block_content The block content. * @param array $block The block data. * * @since 1.2.4 * * @return string */ function mega_menu( string $block_content, array $block ) : string { $rel = $block['attrs']['rel'] ?? ''; if ( $rel !== 'mega-menu' ) { return $block_content; } $template_part = get_block_template( get_stylesheet() . '//mega-menu', 'wp_template_part' ); if ( ! $template_part || empty( $template_part->content ) ) { return $block_content; } $mega_menu = do_blocks( $template_part->content ); $container = '
'; $block_content = str_replace( 'wp-block-navigation-submenu', 'wp-block-navigation-submenu mega-menu', $block_content ); $block_content = str_replace( '', $container . '', $block_content ); return $block_content; }