博客

⭐️ 发布 v5.0,新增为自定义文章分配标签和分类的 mutation,以及多项改进

Leonardo Losoviz
作者:Leonardo Losoviz ·

Gato GraphQL v5.0 已正式发布。完整的变更列表请参阅 GitHub 上的发布说明

从本版本起,WordPress 的最低版本已提升至 v6.1

以下是最重要的更新内容。

破坏性变更

  • 将 WordPress 最低版本提升至 6.1。

使用空数组过滤数据时不返回任何结果

以下 GraphQL query 按 ID 过滤文章:

query FilterPostsByIDs(
  $ids: [ID!]
) {
  posts(filter: { ids: $ids }) {
    title
  }
}

此前,当变量 $ids 传入空数组时:

{
  "ids": []
}

……输入 filter.ids 会被忽略,字段会返回所有结果。

现在,传入空数组表示「不获取任何结果」。

如需忽略过滤器输入,请改为传入 null

同样的行为适用于所有接受 filter.ids 输入的字段:

  • categories
  • comments
  • customPosts
  • tags
  • users

改进

  • 新增字段 isGutenbergEditorEnabled
  • 支持文章标签/分类 mutation 中的其他分类法(不仅限于 post_tagcategory
  • PostTagPostCategory 类型中也新增了 taxonomy 字段
  • GenericCustomPost 上新增 featuredImage 字段

新增为自定义文章分配自定义标签/分类的 mutation

现在可以执行 mutation 来为自定义文章分配标签和分类:

mutation SetTagsAndCategoriesOnCustomPost(
  $customPostId: ID!
  $tagIDs: [ID!]!
  $categoryIDs: [ID!]!
  $append: Boolean
) {
  setTagsOnCustomPost(input: {
    id: $customPostId
    tagsBy: {
      ids: $tagIDs
    }
    taxonomy: "some-tag-taxonomy"
    append: $append
  }) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    customPost {
      tags(taxonomy: "some-tag-taxonomy") {
        id
      }
      tagNames(taxonomy: "some-tag-taxonomy")
    }
  }
 
  setCategoriesOnCustomPost(input: {
    id: $customPostId
    categoriesBy: {
      ids: $categoryIDs
    }
    taxonomy: "some-category-taxonomy"
    append: $append
  }) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    customPost {
      categories(taxonomy: "some-category-taxonomy") {
        id
      }
      categoryNames(taxonomy: "some-category-taxonomy")
    }
  }
}

新增启用/禁用日志的设置选项

特定项目(例如:在 PRO 中执行自动化时)的完整 GraphQL 响应可记录到文件 wp-content/gatographql/logs/info.log 中。

Settings > Plugin Configuration > General 中新增了 Enable Logs? 选项,用于启用这些日志的输出(默认为 false):

设置中的「Enable Logs?」选项

Application password 认证失败时:在 GraphQL 响应中显示错误

如果使用 Application passwords 对 GraphQL 端点进行用户认证,且认证失败,错误消息现在将显示在 GraphQL 响应中:

{
  "errors": [
    {
      "message": "Application Password authentication error: The provided password is an invalid application password."
    }
  ],
  "data": {
    "me": null
  }
}

新增预定义 persisted query

新增了若干 persisted query:

  • [PRO] 从 WordPress RSS 订阅导入文章并用 ChatGPT 重写其内容
  • [PRO] 从 WordPress RSS 订阅导入新文章
  • [PRO] 从 URL 将 HTML 作为新文章导入 WordPress

错误修复

  • 修复字段 blocksblockDataItemsblockFlattenedDataItems 在文章无内容时报错的问题

订阅我们的新闻通讯

及时了解 Gato GraphQL 的所有更新。