. * @return array */ public static function extract( string $content, string $base, bool $include_images = true ): array { $links = HtmlParser::extract( $content, $base, '', $include_images ); // URLs already found as HTML attributes are not counted again from shortcode/block attributes. $seen = array(); foreach ( $links as $link ) { $seen[ $link['url'] ] = true; } $extra = array_merge( AttributeParser::shortcodes( $content, $base, '', $include_images ), AttributeParser::blocks( $content, $base, '', $include_images ) ); foreach ( $extra as $link ) { if ( isset( $seen[ $link['url'] ] ) ) { continue; } $seen[ $link['url'] ] = true; $links[] = $link; } return $links; } }