<?php class WP_Sitemaps_Index { protected $registry; private $max_sitemaps = 50000; public function __construct(WP_Sitemaps_Registry $registry) { $this->registry = $registry; } public function get_sitemap_list() { $sitemaps = array(); $providers = $this->registry->get_providers(); foreach ($providers as $name => $provider) { $sitemap_entries = $provider->get_sitemap_entries(); if (!$sitemap_entries) { continue; } array_push($sitemaps, ...$sitemap_entries); if (count($sitemaps) >= $this->max_sitemaps) { break; } } return array_slice($sitemaps, 0, $this->max_sitemaps, true); } public function get_index_url() { global $wp_rewrite; if (!$wp_rewrite->using_permalinks()) { return home_url('/?sitemap=index'); } return home_url('/wp-sitemap.xml'); } }