Yoast\WP\SEO\Schema_Aggregator\Application\Schema_Map

Schema_Map_Xml_Renderer::renderpublicYoast 1.0

Converts the schema map to an XML string.

Метод класса: Schema_Map_Xml_Renderer{}

Хуков нет.

Возвращает

Строку. The XML representation of the schema map.

Использование

$Schema_Map_Xml_Renderer = new Schema_Map_Xml_Renderer();
$Schema_Map_Xml_Renderer->render( $schema_map ): string;
$schema_map(array<array>) (обязательный)
The schema map data.

Код Schema_Map_Xml_Renderer::render() Yoast 27.7

public function render( array $schema_map ): string {
	$dom = new DOMDocument( '1.0', 'UTF-8' );

	$url_set = $dom->createElement( 'urlset' );
	$url_set->setAttribute( 'xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9' );
	$dom->appendChild( $url_set );

	$change_freq = $this->config->get_changefreq();
	$priority    = $this->config->get_priority();

	foreach ( $schema_map as $entry ) {
		if ( ! isset( $entry['url'] ) || ! isset( $entry['lastmod'] ) ) {
			continue;
		}

		$url = $dom->createElement( 'url' );

		$url->setAttribute( 'contentType', 'structuredData/schema.org' );

		$loc = $dom->createElement( 'loc' );
		$loc->appendChild( $dom->createTextNode( $entry['url'] ) );
		$url->appendChild( $loc );

		$last_mod = $dom->createElement( 'lastmod' );
		$last_mod->appendChild( $dom->createTextNode( $entry['lastmod'] ) );
		$url->appendChild( $last_mod );

		$cf = $dom->createElement( 'changefreq' );
		$cf->appendChild( $dom->createTextNode( $change_freq ) );
		$url->appendChild( $cf );

		$prio = $dom->createElement( 'priority' );
		$prio->appendChild( $dom->createTextNode( $priority ) );
		$url->appendChild( $prio );

		$url_set->appendChild( $url );
	}

	$xml = $dom->saveXML();
	if ( $xml === false ) {
		throw new RuntimeException( 'Failed to generate XML from DOMDocument' );
	}

	return $xml;
}