Gatsby 盖茨比网站地图插件-只包括某些URL?

Gatsby 盖茨比网站地图插件-只包括某些URL?,gatsby,sitemap.xml,Gatsby,Sitemap.xml,我知道我可以用options对象中的exclude数组用gatsby plugin sitemap排除URL,但是有没有办法要求所有URL都有一些字符串?主要希望要求添加到站点地图的URL包含en-us或es-us { resolve: `gatsby-plugin-sitemap`, options: { exclude: [`all urls must contain "en-us" or "es-us"`], }, }, 谢谢 更新 多亏了@Ma

我知道我可以用
options
对象中的
exclude
数组用
gatsby plugin sitemap
排除URL,但是有没有办法要求所有URL都有一些字符串?主要希望要求添加到站点地图的URL包含
en-us
es-us

 {
    resolve: `gatsby-plugin-sitemap`,
    options: {
      exclude: [`all urls must contain "en-us" or "es-us"`],
    },
  },
谢谢

更新 多亏了@MarkoCen,我才得以工作。我只是用正则表达式在我的网站地图中添加我想要的URL。如果有人感兴趣,这里有代码。请注意,我必须使用这种方法:

{
    resolve: `gatsby-plugin-sitemap`,
    options: {
      query: `
        {
          site {
            siteMetadata {
              siteUrl
            }
          }

          allSitePage {
            edges {
              node {
                path
              }
            }
          }
      }`,
      serialize: ({ site, allSitePage }) => {
        const links = [];
        for (let i = 0; i < allSitePage.edges.length; i++) {
          const { path } = allSitePage.edges[i].node;
          if (
            /products|404|unsupported|account/.test(path)
          ) {
            continue;
          } else if (/en-us|es-us/.test(path)) {
            links.push({
              url: site.siteMetadata.siteUrl + path,
              changefreq: 'daily',
              priority: 0.8,
            });
          }
        }
        return links;
      },
    },
  },
{
解析:`gatsby插件站点地图`,
选项:{
查询:`
{
场地{
站点元数据{
站点URL
}
}
所有站点页面{
边缘{
节点{
路径
}
}
}
}`,
序列化:({site,allSitePage})=>{
常量链接=[];
for(设i=0;i
您可以使用
查询
序列化
选项从头开始构建站点地图

{
解析:`gatsby插件站点地图`,
选项:{
输出:`/sitemap.xml`,
//使用此查询获取站点地图链接所需的所有数据
查询:`
{
场地{
站点元数据{
站点URL
}
博客{
标题
}
...
}
`,
序列化:({site,blogs})=>{
常量链接=[];
blogs.forEach(blog=>{
//添加带有en-us前缀的链接
links.push({
url:`${site.sitematadata.siteUrl}/en-us/blog/${blog.title}`,
changefreq:“每日”,
优先级:0.8,
});
//添加带有es us前缀的链接
links.push({
url:`${site.sitematadata.siteUrl}/es us/blog/${blog.title}`
changefreq:“每日”,
优先级:0.8,
});
})
//插件将使用返回的链接生成站点地图,所以只包含您想要显示的链接!
返回链接;
}
},
},

您可以使用
查询
序列化
选项从头开始构建站点地图

{
解析:`gatsby插件站点地图`,
选项:{
输出:`/sitemap.xml`,
//使用此查询获取站点地图链接所需的所有数据
查询:`
{
场地{
站点元数据{
站点URL
}
博客{
标题
}
...
}
`,
序列化:({site,blogs})=>{
常量链接=[];
blogs.forEach(blog=>{
//添加带有en-us前缀的链接
links.push({
url:`${site.sitematadata.siteUrl}/en-us/blog/${blog.title}`,
changefreq:“每日”,
优先级:0.8,
});
//添加带有es us前缀的链接
links.push({
url:`${site.sitematadata.siteUrl}/es us/blog/${blog.title}`
changefreq:“每日”,
优先级:0.8,
});
})
//插件将使用返回的链接生成站点地图,所以只包含您想要显示的链接!
返回链接;
}
},
},

谢谢,这对我们来说绝对是正确的方法。我使用了您的想法并对其进行了一些调整。直到全局模式包含在内,所以我尝试“排除既不包含en-us也不包含es-us的路径”可能不可能。谢谢,这对我们来说绝对是正确的方法。我使用了你的想法并对其进行了一些调整。直到全局模式包含在内,所以我尝试“排除既不包含en-us也不包含es-us的路径”可能是不可能的。