我目前正在使用 Next.js 中的无头 WordPress 网站。我在国际化路由方面有点挣扎。我有 2 个与此问题相关的主页文件:
pages/[...slug].tsx
在这个文件中,我使用 getStaticPaths 函数为我的 WordPress 数据库中的所有页面获取 GraphQL 数据。
pages/[locale]/Blog/[...slug].tsx
在这个文件中,我使用 getStaticPaths 函数为我的 WordPress 数据库中的所有博客文章获取 GraphQL 数据。
我在 next.config 文件中配置了语言环境,如下所示:
i18n: {
locales: ['da-DK', 'en-GB'],
defaultLocale: 'da-DK',
},
我很难找到一种方法来捕捉所有的博客文章。使用我当前的文件结构,我将捕获所有带有以下 URL 的博客文章:
siteName/en/blog/page-name
但不是具有以下结构的默认语言下的博客文章:
siteName/blog/page-name
我尝试使用 [[locale]] 但收到错误:
Error: Optional route parameters are not yet supported ("[[locale]]").
因此,似乎只能将包罗万象的路线设为可选。知道如何处理这样的事情吗?另一种方法可能是“加入”帖子和博客帖子的 2 个不同文件,然后在我需要对帖子或页面进行查询时使用一些条件逻辑进行排序。如果可能的话,我宁愿避免这种情况......