getElementsByTagName( '*' ) as $element ) { if ( in_array( $element->tagName, [ 'h2', 'h3', 'h4', 'h5', 'h6' ], true ) ) { $content_headings[] = $element->textContent; } } $dom = dom( $html ); $nav = get_dom_element( 'nav', $dom ); if ( ! $nav ) { return $html; } $nav->removeChild( $nav->firstChild ); $ol = $dom->createElement( 'ol' ); $nav->appendChild( $ol ); foreach ( $content_headings as $content_heading ) { $link = $dom->createElement( 'a' ); $link->setAttribute( 'href', '#' . sanitize_title( $content_heading ) ); $link->textContent = $content_heading; $li = $dom->createElement( 'li' ); $li->appendChild( $link ); $ol->appendChild( $li ); } $nav_styles = css_string_to_array( $nav->getAttribute( 'style' ) ); $gap = $block['attrs']['style']['spacing']['blockGap'] ?? null; if ( $gap ) { $nav_styles['gap'] = format_custom_property( $gap ); } $ol->setAttribute( 'style', css_array_to_string( $nav_styles ) ); $nav->removeAttribute( 'style' ); $html = $dom->saveHTML(); } return $html; }