WPML

从前端按语言查询内容

每个 WPGraphQL 查询都会获得一个 language 参数。在单个字段中按语言筛选文章、自定义文章类型、分类法项、菜单、菜单项和评论——无需在前端进行查询后筛选,无需增加一倍的请求量,也无需猜测语言。

query PostsES {
  posts(where: { language: "es" }) {
    nodes { slug uri title }
  }
}

当您按语言筛选顶级节点时,关联的项目(类别、标签、自定义分类法)会自动遵循相同的语言。结果保持一致,无需为每个嵌套字段添加额外的参数。

想要获取所有内容(无论语言如何)以用于 XML 站点地图或汇总统计?请传递 language: "all"

在一次查询中获取节点的所有翻译

文章和分类法项上的 translations 字段会返回节点的每种其他语言版本:别名、URI、语言代码以及您请求的任何嵌套字段。一次查询,一次往返,即可获取页面的所有语言版本。

这正是您在页面内容旁渲染语言切换器所需的数据,而无需让前端执行一连串的相关查询。

多语言菜单、分类法、评论和语言数据

除了文章之外,WPML GraphQL 还将相同的 language 参数和翻译处理扩展到:

  • 菜单和菜单项。menu(language: "fr") 用于按语言导航。在 WPML GraphQL 1.1.0 中添加。
  • 分类法项。类别、标签和自定义分类法默认遵循其文章的语言,并且可以直接按语言进行查询。
  • 评论。返回与特定语言的文章关联的评论。
  • languagesdefaultLanguage 查询。列出网站上安装的每种语言,包括代码、区域设置、本族语名称、国旗 URL 和主页 URL。为自定义语言切换器提供正确的数据结构。

按 ID 或别名查询任何语言的特定文章

有两种查询形式可以通过特定语言的标识符获取单篇已翻译的文章:

query PostBySlug {
  post(id: "hola-mundo", idType: SLUG) {
    title slug uri
  }
}
query PostById {
  post(id: "2", idType: DATABASE_ID) {
    title slug uri
  }
}

任何一种形式都会返回已翻译的文章及其翻译后的标题、别名和 URI——前端无需单独编写“这是翻译吗?”的逻辑。

针对当前 WPGraphQL 版本进行维护

WPML GraphQL 1.1.3 已在 WPGraphQL 2.0.0(WPGraphQL 项目当前的主要发布版本)上进行了测试。维护 WPGraphQL 的团队与我们密切合作,因此多语言层能始终与架构保持同步。当 WPGraphQL 发布新版本时,WPML GraphQL 也会紧随其后进行更新。

添加 ACFML 和 WPGraphQL for ACF 后即可与 ACF 配合使用

对于在 Advanced Custom Fields 中构建内容模型并通过 WPGraphQL 公开这些字段的网站,WPML GraphQL 可与 ACFML 和 WPGraphQL for ACF 结合使用,从而为 ACF 选项页面查询添加 language 参数:

query Settings {
  myOptionPage(language: "de") {
    addressFieldGroup {
      addressTitle
      repeaterAddressDetails { addressDetails }
    }
  }
}

文章和自定义文章类型上的 ACF 字段会自动遵循所属文章的语言。

WPML GraphQL 包含在 WPML 中

WPML GraphQL 随 Multilingual CMS 和 WPML Agency 一起提供。无需单独购买,也没有按站点收取的费用。只需购买 WPML 一次,您的无头多语言技术栈即可拥有语言层。如果您已经拥有 WPML,请从您的 WPML 下载页面激活 WPML GraphQL。