问题描述
我目前正在 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',},
我很难找到一种方法来捕捉所有的博客文章。使用我当前的文件结构,我将使用以下网址捕获所有博客文章:
siteName/en/blog/page-name
siteName/blog/page-name
我尝试使用 [[locale]] 但出现错误:
Error: Optional route parameters are not yet supported ("[[locale]]").
所以似乎只有包罗万象的路由可以成为可选的。知道如何处理这样的事情吗?另一种方法是“加入”帖子和博客帖子的 2 个不同文件,然后使用一些条件逻辑来排序是否需要对帖子或页面进行查询。如果可能的话,我宁愿避免这种情况...
解决方法
我最终使用了一些条件逻辑来确定是否应该从我的 CMS 获取博客文章或页面数据。我一直在祈祷 Optional route parameters 稍后将在 Next.js 中实现 - 这肯定会是一个更灵活的解决方案。