⭐️ Uitgebracht v4.2 met nieuwe mutations voor tags en categorieën, verbeterde mutations voor media en verbeterde integratie met Polylang (PRO)
Gato GraphQL v4.2 is uitgebracht. Bekijk de release-opmerkingen op GitHub voor de volledige lijst met wijzigingen.
Hieronder staan de belangrijkste nieuwe functies.
Toegevoegde mutations voor tags en categorieën
Het is nu mogelijk om post-tags en -categorieën aan te maken, bij te werken en te verwijderen met de nieuw toegevoegde mutations:
PostCategory.deletePostCategory.updatePostTag.deletePostTag.updateRoot.createPostCategoryRoot.createPostTagRoot.deletePostCategoryRoot.deletePostTagRoot.updatePostCategoryRoot.updatePostTag
En ook aangepaste tags en categorieën, met de nieuw toegevoegde mutations:
GenericCategory.deleteGenericCategory.updateGenericTag.deleteGenericTag.updateRoot.createCategoryRoot.createTagRoot.deleteCategoryRoot.deleteTagRoot.updateCategoryRoot.updateTag
Deze query maakt post-tag-termen aan, werkt ze bij en verwijdert ze:
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
}Deze query maakt post-categorie-termen aan, werkt ze bij en verwijdert ze:
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
}
}Deze query maakt tag-termen aan, werkt ze bij en verwijdert ze voor een aangepaste some-tag-taxonomy-tag:
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
}Deze query maakt categorie-termen aan, werkt ze bij en verwijdert ze voor een aangepaste some-cat-taxonomy-categorie:
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
}
}Een media-item aanmaken met de bijlage van een bestaand media-item
Mutation createMediaItem kan nu een media-item aanmaken met dezelfde bijlage van een bestaand media-item (d.w.z. zonder het bestand op schijf te dupliceren):
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] Definieer de Polylang-taal bij tag- en categorie-mutations
Met de Polylang-integratie kun je bij het aanmaken van een tag of categorie (zie hierboven) de polylangLanguageBy-invoer meegeven om meteen de taal ervan te definiëren.
Deze query maakt bijvoorbeeld een post-categorie aan en stelt de taal in op Spaans:
mutation {
createPostCategory(input: {
name: "Noticias"
polylangLanguageBy: { code: "es" }
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
category {
polylangLanguage {
locale
}
name
}
}
}[PRO] Toegevoegde Polylang Mutations voor media-items
PRO-module Polylang Mutations biedt mutations voor de integratie met de Polylang-plugin.
Het GraphQL-schema is uitgebreid met mutations om:
- De taal voor media-items in te stellen, en
- Associaties tussen hen te definiëren (d.w.z. aangeven dat een set media-items een vertaling van elkaar is).
| Mutation | Beschrijving |
|---|---|
polylangSetMediaItemLanguage | Stel de taal van het media-item in. |
polylangSaveMediaItemTranslationAssociation | Stel de vertaalassociatie voor het media-item in. |
De volgende query definieert bijvoorbeeld de taal voor 3 media-items (Engels, Spaans en Frans) en stelt vervolgens in dat deze 3 media-items een vertaling van elkaar zijn:
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] Entiteiten filteren op de standaardtaal van Polylang
Het is nu mogelijk om entiteiten te filteren op de standaardtaal die in Polylang is ingesteld, door de enum-waarde DEFAULT op te geven in het filter polylangLanguagesBy:
{
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] Automation: Sla de GraphQL-respons op in de info-logs
De volledige GraphQL-respons voor een automatiseringsuitvoering (voor zowel WP-Cron als Automation Rules, ongeacht of de uitvoering succesvol was) wordt vastgelegd in het bestand wp-content/gatographql/logs/info.log.