wp_sitemaps_add_providerfilter-hookWP 5.5.0

Allows you to change/remove a sitemap provider (the PHP object responsible for creating a sitemap of a particular type, such as posts or users) before it is added to the provider list.

Usage

add_filter( 'wp_sitemaps_add_provider', 'wp_kama_sitemaps_add_provider_filter', 10, 2 );

/**
 * Function for `wp_sitemaps_add_provider` filter-hook.
 * 
 * @param WP_Sitemaps_Provider $provider Instance of a WP_Sitemaps_Provider.
 * @param string               $name     Name of the sitemap provider.
 *
 * @return WP_Sitemaps_Provider
 */
function wp_kama_sitemaps_add_provider_filter( $provider, $name ){
	// filter...
	return $provider;
}
$provider(WP_Sitemaps_Provider)
The generator of sitemaps of a particular type (the type is passed in $name). An instance of WP_Sitemaps_Provider.
$name(string)
The sitemap provider name. It can be posts, taxonomies, or users.

Examples

#1 Remove the Users sitemap

Suppose we open /wp-sitemap.xml and see an unwanted link to a page containing author links (the author sitemap).

Sitemap display example after removing element

Remove the users sitemap:

// Removes the users provider from the sitemap
add_filter( 'wp_sitemaps_add_provider', 'kama_remove_sitemap_provider', 10, 2 );
function kama_remove_sitemap_provider( $provider, $name ) {

	if ( 'users' === $name ) {
		return false;
	}

	return $provider;
}

Changelog

Since 5.5.0 Introduced.

Where the hook is called

WP_Sitemaps_Registry::add_provider()
wp_sitemaps_add_provider
wp-includes/sitemaps/class-wp-sitemaps-registry.php 50
$provider = apply_filters( 'wp_sitemaps_add_provider', $provider, $name );

Where the hook is used in WordPress

Usage not found.