ブログ

⭐️ カスタム投稿へのタグ・カテゴリー割り当てのための新しいmutationを搭載したv5.0リリース、その他多数の改善

Leonardo Losoviz
著者: Leonardo Losoviz ·

Gato GraphQL v5.0 がリリースされました。変更点の完全なリストは GitHub のリリースノート をご覧ください。

このバージョンから、WordPress の最低バージョンが v6.1 に引き上げられました。

以下に最も重要な更新内容を示します。

破壊的変更

  • WordPress の最低バージョンを 6.1 に引き上げました。

空の配列でデータをフィルタリングした場合に結果を返さない

この GraphQL クエリは 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 のみでなく)
  • PostTag および PostCategory 型にも taxonomy フィールドを追加
  • GenericCustomPostfeaturedImage フィールドを追加

カスタム投稿へのカスタムタグ・カテゴリー割り当て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 のすべてのアップデートを把握しましょう。