/**
 * Lekka mapa strony XML pod adresem /sitemap.xml
 */
add_action('init', 'oltiva_add_sitemap_endpoint');
function oltiva_add_sitemap_endpoint() {
    add_rewrite_rule('sitemap\.xml$', 'index.php?oltiva_sitemap=1', 'top');
}

add_filter('query_vars', 'oltiva_sitemap_query_var');
function oltiva_sitemap_query_var($vars) {
    $vars[] = 'oltiva_sitemap';
    return $vars;
}

add_action('template_redirect', 'oltiva_generate_xml_sitemap');
function oltiva_generate_xml_sitemap() {
    if (get_query_var('oltiva_sitemap')) {
        header('Content-Type: application/xml; charset=UTF-8');
        
        echo '<?xml version="1.0" encoding="UTF-8"?>';
        echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
        
        // Strona główna
        echo '<url>';
        echo '<loc>' . esc_url(home_url('/')) . '</loc>';
        echo '<changefreq>daily</changefreq>';
        echo '<priority>1.0</priority>';
        echo '</url>';

        // Standardowe podstrony
        $pages = get_pages();
        foreach ($pages as $page) {
            echo '<url>';
            echo '<loc>' . esc_url(get_permalink($page->ID)) . '</loc>';
            echo '<lastmod>' . date('Y-m-d', strtotime($page->post_modified)) . '</lastmod>';
            echo '<changefreq>weekly</changefreq>';
            echo '<priority>0.8</priority>';
            echo '</url>';
        }

        // Nasze turnieje (CPT 'turniej')
        $tournaments = get_posts([
            'post_type' => 'turniej',
            'posts_per_page' => -1,
            'post_status' => 'publish'
        ]);
        foreach ($tournaments as $t) {
            echo '<url>';
            echo '<loc>' . esc_url(get_permalink($t->ID)) . '</loc>';
            echo '<lastmod>' . date('Y-m-d', strtotime($t->post_modified)) . '</lastmod>';
            echo '<changefreq>weekly</changefreq>';
            echo '<priority>0.9</priority>';
            echo '</url>';
        }

        echo '</urlset>';
        exit;
    }
}