<?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');
    }
}