wp_sitemaps_add_provider
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, orusers.
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).

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_add_provider
wp-includes/sitemaps/class-wp-sitemaps-registry.php 50
$provider = apply_filters( 'wp_sitemaps_add_provider', $provider, $name );