WP_Sitemaps_Renderer::get_sitemap_xml( array $url_list ): string|false

In this article

Gets XML for a sitemap.

Parameters

$url_listarrayrequired
Array of URLs for a sitemap.

Return

string|false A well-formed XML string for a sitemap index. False on error.

Source

public function get_sitemap_xml( $url_list ) {
	$urlset = new SimpleXMLElement(
		sprintf(
			'%1$s%2$s%3$s',
			'<?xml version="1.0" encoding="UTF-8" ?>',
			$this->stylesheet,
			'<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" />'
		)
	);

	foreach ( $url_list as $url_item ) {
		$url = $urlset->addChild( 'url' );

		// Add each element as a child node to the <url> entry.
		foreach ( $url_item as $name => $value ) {
			if ( 'loc' === $name ) {
				$url->addChild( $name, esc_url( $value ) );
			} elseif ( in_array( $name, array( 'lastmod', 'changefreq', 'priority' ), true ) ) {
				$url->addChild( $name, esc_xml( $value ) );
			} else {
				_doing_it_wrong(
					__METHOD__,
					sprintf(
						/* translators: %s: List of element names. */
						__( 'Fields other than %s are not currently supported for sitemaps.' ),
						implode( ',', array( 'loc', 'lastmod', 'changefreq', 'priority' ) )
					),
					'5.5.0'
				);
			}
		}
	}

	return $urlset->asXML();
}

Changelog

VersionDescription
5.5.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.