创建站点地图 sitemap.xml

引入

use zxf\Tools\SiteMapGenerator;

调用

// 创建 SitemapGenerator 实例
$sitemapDir       = __DIR__.'/sitemaps'; // 存储 Sitemap 的目录
$baseUrl          = 'https://www.example.com'; // 网站的基础 URL
$sitemapGenerator = new SiteMapGenerator($sitemapDir, $baseUrl, 'site_maps');

// 设置自定义 XML 头部(可选)
$sitemapGenerator->setHeader('<?xml version="1.0" encoding="UTF-8"?>');

// 添加 URL
$sitemapGenerator->addUrl('/page1', '2024-09-24', 'daily', 0.8); // 页面 1
$sitemapGenerator->addUrl('/page2', '2024-09-23', 'weekly', 0.5); // 页面 2
$sitemapGenerator->addUrl('/page3', null, 'monthly', 0.3); // 页面 3(没有最后修改时间)

// 动态添加 URL
$sitemapGenerator->addDynamicUrls(function ($generator) {
    for ($i = 4; $i <= 60; $i++) {
        $generator->addUrl("/page$i", date('Y-m-d'), 'weekly', 0.5);
    }
});

// 添加新闻条目(可选)
$sitemapGenerator->addNewsEntry('/news1', '2024-09-24', '新闻标题1', '关键词1, 关键词2');
$sitemapGenerator->addNewsEntry('/news2', '2024-09-24', '新闻标题2', '关键词3, 关键词4');

// 为指定 URL 添加图像信息(可选)
$sitemapGenerator->addImageToUrl('/page1', 'https://www.example.com/images/image1.jpg', '图像标题1', '图像说明1');

// 为指定 URL 添加视频信息(可选)
$sitemapGenerator->addVideoToUrl('/page2', 'https://www.example.com/videos/video1.mp4', '视频标题1', '视频描述1', 'https://www.example.com/videos/video1_thumbnail.jpg', 120);

// 生成 Sitemap
$sitemapGenerator->generateFile();


// 打印成功信息
echo "Sitemap 生成成功,文件存储在: $sitemapDir\n";

生成结果文件

索引文件 sitemap.xml

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap-image/1.1">
    <sitemap>
        <loc>https://www.example.com/site_maps/2024-09-24/sitemap_1.xml</loc>
        <lastmod>2024-09-24</lastmod>
    </sitemap>
</sitemapindex>

Sitemap 文件

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
    <url>
        <loc>https://www.example.com/page1</loc>
        <lastmod>2024-09-24</lastmod>
        <changefreq>daily</changefreq>
        <priority>0.8</priority>
    </url>
    <url>
        <loc>https://www.example.com/page2</loc>
        <lastmod>2024-09-23</lastmod>
        <changefreq>weekly</changefreq>
        <priority>0.5</priority>
    </url>
    <url>...</url>
    <url>
        <loc>https://www.example.com/news2</loc>
    </url>
</urlset>