⭐️ v4.2 릴리스: 태그 및 카테고리를 위한 새로운 mutation, 미디어를 위한 개선된 mutation, Polylang 통합 강화 (PRO)
Gato GraphQL v4.2 가 릴리스되었습니다. 변경 사항의 전체 목록은 GitHub 릴리스 노트를 확인하세요.
아래는 가장 중요한 새로운 기능들입니다.
태그 및 카테고리를 위한 mutation 추가
새롭게 추가된 mutation으로 포스트 태그와 카테고리를 생성, 업데이트, 삭제할 수 있게 되었습니다:
PostCategory.deletePostCategory.updatePostTag.deletePostTag.updateRoot.createPostCategoryRoot.createPostTagRoot.deletePostCategoryRoot.deletePostTagRoot.updatePostCategoryRoot.updatePostTag
또한 커스텀 태그와 카테고리도 새롭게 추가된 mutation으로 지원됩니다:
GenericCategory.deleteGenericCategory.updateGenericTag.deleteGenericTag.updateRoot.createCategoryRoot.createTagRoot.deleteCategoryRoot.deleteTagRoot.updateCategoryRoot.updateTag
이 쿼리는 포스트 태그 텀을 생성, 업데이트, 삭제합니다:
mutation CreateUpdateDeletePostTags {
createPostTag(input: {
name: "Some name"
slug: "Some slug"
description: "Some description"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
category {
...PostTagData
}
}
updatePostTag(input: {
id: 1
name: "Some updated name"
slug: "Some updated slug"
description: "Some updated description"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
category {
...PostTagData
}
}
deletePostTag(input: {
id: 1
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
}
}
fragment PostTagData on PostTag {
id
name
slug
description
}이 쿼리는 포스트 카테고리 텀을 생성, 업데이트, 삭제합니다:
mutation CreateUpdateDeletePostCategories {
createPostCategory(input: {
name: "Some name"
slug: "Some slug"
description: "Some description"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
category {
...PostCategoryData
}
}
updatePostCategory(input: {
id: 1
name: "Some updated name"
slug: "Some updated slug"
description: "Some updated description"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
category {
...PostCategoryData
}
}
deletePostCategory(input: {
id: 1
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
}
}
fragment PostCategoryData on PostCategory {
id
name
slug
description
parent {
id
}
}이 쿼리는 커스텀 some-tag-taxonomy 태그의 태그 텀을 생성, 업데이트, 삭제합니다:
mutation CreateUpdateDeleteTags {
createTag(input: {
taxonomy: "some-tag-taxonomy",
name: "Some name"
slug: "Some slug"
description: "Some description"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
category {
...TagData
}
}
updateTag(input: {
id: 1
taxonomy: "some-tag-taxonomy"
name: "Some updated name"
slug: "Some updated slug"
description: "Some updated description"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
category {
...TagData
}
}
deleteTag(input: {
id: 1
taxonomy: "some-tag-taxonomy"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
}
}
fragment TagData on Tag {
id
name
slug
description
}이 쿼리는 커스텀 some-cat-taxonomy 카테고리의 카테고리 텀을 생성, 업데이트, 삭제합니다:
mutation CreateUpdateDeleteCategories {
createCategory(input: {
taxonomy: "some-cat-taxonomy",
name: "Some name"
slug: "Some slug"
description: "Some description"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
category {
...CategoryData
}
}
updateCategory(input: {
id: 1
taxonomy: "some-cat-taxonomy"
name: "Some updated name"
slug: "Some updated slug"
description: "Some updated description"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
category {
...CategoryData
}
}
deleteCategory(input: {
id: 1
taxonomy: "some-cat-taxonomy"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
}
}
fragment CategoryData on Category {
id
name
slug
description
parent {
id
}
}기존 미디어 아이템의 첨부 파일을 사용하여 미디어 아이템 생성
createMediaItem mutation은 이제 기존 미디어 아이템과 동일한 첨부 파일을 사용하여 새로운 미디어 아이템을 생성할 수 있습니다 (즉, 디스크에 파일을 복제하지 않고도):
mutation {
createMediaItem(input: {
from: {
mediaItemBy: {
id: 337
}
}
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
mediaItem {
id # New media item created
src # Same attachment as the provided media item
}
}
}[PRO] 태그 및 카테고리 mutation에서 Polylang 언어 지정
Polylang 통합을 사용하면 태그나 카테고리를 생성할 때 (위 참조) polylangLanguageBy 입력을 전달하여 언어를 미리 정의할 수 있습니다.
예를 들어, 이 쿼리는 포스트 카테고리를 생성하고 그 언어를 스페인어로 정의합니다:
mutation {
createPostCategory(input: {
name: "Noticias"
polylangLanguageBy: { code: "es" }
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
category {
polylangLanguage {
locale
}
name
}
}
}[PRO] 미디어 아이템을 위한 Polylang mutation 추가
PRO 모듈 Polylang Mutations는 Polylang 플러그인과의 통합을 위한 mutation을 제공합니다.
GraphQL 스키마가 다음과 같은 mutation으로 보강되었습니다:
- 미디어 아이템의 언어 설정, 그리고
- 미디어 아이템 간의 연관 관계 정의 (즉, 미디어 아이템 집합이 서로의 번역임을 표시).
| Mutation | 설명 |
|---|---|
polylangSetMediaItemLanguage | 미디어 아이템의 언어를 설정합니다. |
polylangSaveMediaItemTranslationAssociation | 미디어 아이템의 번역 연관 관계를 설정합니다. |
예를 들어, 다음 쿼리는 3개의 미디어 아이템에 대해 언어를 정의하고 (영어, 스페인어, 프랑스어), 이 3개의 미디어 아이템이 서로의 번역임을 정의합니다:
mutation {
mediaItem1: polylangSetMediaItemLanguage(input: {id: 1007, languageBy: { code: "en" }}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
}
mediaItem2: polylangSetMediaItemLanguage(input: {id: 204, languageBy: { code: "es" }}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
}
mediaItem3: polylangSetMediaItemLanguage(input: {id: 377, languageBy: { code: "fr" }}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
}
polylangSaveMediaItemTranslationAssociation(input: {
ids: [1007, 204, 377]
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
}
}[PRO] Polylang의 기본 언어로 엔티티 필터링
이제 polylangLanguagesBy 필터에 DEFAULT 열거형 값을 제공하여 Polylang에 설정된 기본 언어로 엔티티를 필터링할 수 있습니다:
{
posts(
filter: {
polylangLanguagesBy: {
predefined: DEFAULT
}
}
) {
title
polylangLanguage {
code
}
}
pages(
filter: {
polylangLanguagesBy: {
predefined: DEFAULT
}
}
) {
title
polylangLanguage {
code
}
}
customPosts(
filter: {
polylangLanguagesBy: {
predefined: DEFAULT
}
customPostTypes: "dummy-cpt"
}
) {
title
polylangLanguage {
code
}
}
}[PRO] 자동화: GraphQL 응답을 info 로그에 저장
자동화 실행에 대한 완전한 GraphQL 응답 (WP-Cron 및 자동화 규칙 모두, 실행 성공 여부와 관계없이)이 wp-content/gatographql/logs/info.log 파일에 기록됩니다.