Sitemaps API Functions
Core functions for sitemap management and registration.
Source: wp-includes/sitemaps.php
wp_sitemaps_get_server()
Retrieves the current Sitemaps server instance.
wp_sitemaps_get_server(): WP_Sitemaps
Returns
WP_Sitemaps instance.
Notes
- Bootstraps the sitemaps system if not already initialized
- Fires
wp_sitemaps_initaction on first call - Uses global
$wp_sitemaps
Example
$sitemaps = wp_sitemaps_get_server();
$providers = $sitemaps->registry->get_providers();
wp_get_sitemap_providers()
Gets an array of sitemap providers.
wp_get_sitemap_providers(): WP_Sitemaps_Provider[]
Returns
Array of WP_Sitemaps_Provider instances keyed by provider name.
Example
$providers = wp_get_sitemap_providers();
foreach ( $providers as $name => $provider ) {
echo "Provider: {$name}n";
}
// Output: Provider: posts, Provider: taxonomies, Provider: users
wp_register_sitemap_provider()
Registers a new sitemap provider.
wp_register_sitemap_provider( string $name, WP_Sitemaps_Provider $provider ): bool
Parameters
| Parameter | Type | Description |
|---|---|---|
$name |
string | Unique name for the sitemap provider |
$provider |
WP_Sitemaps_Provider | Provider instance |
Returns
true on success, false if provider already exists or filtered out.
Hooks
wp_sitemaps_add_provider— Filters provider before registration
Example
add_action( 'wp_sitemaps_init', function( $sitemaps ) {
wp_register_sitemap_provider( 'products', new My_Products_Sitemap_Provider() );
} );
wp_sitemaps_get_max_urls()
Gets the maximum number of URLs for a sitemap.
wp_sitemaps_get_max_urls( string $object_type ): int
Parameters
| Parameter | Type | Description |
|---|---|---|
$object_type |
string | Object type (e.g., post, term, user) |
Returns
Maximum number of URLs. Default: 2000.
Hooks
wp_sitemaps_max_urls— Filters the maximum URL count
Example
// Increase limit for posts
add_filter( 'wp_sitemaps_max_urls', function( $max_urls, $object_type ) {
if ( 'post' === $object_type ) {
return 5000;
}
return $max_urls;
}, 10, 2 );
get_sitemap_url()
Retrieves the full URL for a sitemap.
get_sitemap_url( string $name, string $subtype_name = '', int $page = 1 ): string|false
Since: 5.5.1
Parameters
| Parameter | Type | Description |
|---|---|---|
$name |
string | Sitemap name (posts, taxonomies, users, or index) |
$subtype_name |
string | Subtype name (e.g., post, page, category). Default empty. |
$page |
int | Page number. Default 1. |
Returns
Sitemap URL string, or false if sitemap doesn’t exist.
Example
// Get index URL
$index_url = get_sitemap_url( 'index' );
// https://example.com/wp-sitemap.xml
// Get posts sitemap page 1
$posts_url = get_sitemap_url( 'posts', 'post', 1 );
// https://example.com/wp-sitemap-posts-post-1.xml
// Get categories sitemap page 2
$cat_url = get_sitemap_url( 'taxonomies', 'category', 2 );
// https://example.com/wp-sitemap-taxonomies-category-2.xml
// Invalid provider returns false
$invalid = get_sitemap_url( 'nonexistent' );
// false