⭐️ Etiketler ve kategoriler için yeni mutations, medya için geliştirilmiş mutations ve Polylang ile güçlendirilmiş entegrasyon içeren v4.2 yayınlandı (PRO)
Gato GraphQL v4.2 yayınlandı. Değişikliklerin tam listesi için GitHub'daki sürüm notlarını inceleyin.
Aşağıda en önemli yeni özellikler yer almaktadır.
Etiketler ve kategoriler için mutations eklendi
Yeni eklenen mutations ile gönderi etiketleri ve kategorilerini oluşturmak, güncellemek ve silmek artık mümkündür:
PostCategory.deletePostCategory.updatePostTag.deletePostTag.updateRoot.createPostCategoryRoot.createPostTagRoot.deletePostCategoryRoot.deletePostTagRoot.updatePostCategoryRoot.updatePostTag
Ayrıca yeni eklenen mutations ile özel etiketler ve kategoriler için de:
GenericCategory.deleteGenericCategory.updateGenericTag.deleteGenericTag.updateRoot.createCategoryRoot.createTagRoot.deleteCategoryRoot.deleteTagRoot.updateCategoryRoot.updateTag
Bu query, gönderi etiketi terimlerini oluşturur, günceller ve siler:
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
}Bu query, gönderi kategorisi terimlerini oluşturur, günceller ve siler:
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
}
}Bu query, özel bir some-tag-taxonomy etiketi için etiket terimlerini oluşturur, günceller ve siler:
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
}Bu query, özel bir some-cat-taxonomy kategorisi için kategori terimlerini oluşturur, günceller ve siler:
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
}
}Mevcut bir medya öğesinin ekini kullanarak yeni medya öğesi oluşturma
createMediaItem mutation'ı artık mevcut bir medya öğesiyle aynı eki kullanarak yeni bir medya öğesi oluşturabilmektedir (yani dosyayı diskte çoğaltmadan):
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] Etiket ve kategori mutations'larında Polylang dilini tanımlama
Polylang entegrasyonu ile bir etiket veya kategori oluştururken (yukarıya bakınız) dilini hemen belirlemek için polylangLanguageBy girdisi kullanılabilir.
Örneğin bu query, bir gönderi kategorisi oluşturur ve dilini İspanyolca olarak tanımlar:
mutation {
createPostCategory(input: {
name: "Noticias"
polylangLanguageBy: { code: "es" }
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
category {
polylangLanguage {
locale
}
name
}
}
}[PRO] Medya Öğeleri için Polylang Mutations'ları Eklendi
PRO modülü Polylang Mutations, Polylang eklentisiyle entegrasyon için mutations sağlar.
GraphQL şeması şu amaçlarla mutations ile genişletilmiştir:
- Medya öğeleri için dil belirleme ve
- Aralarındaki ilişkileri tanımlama (yani bir medya öğeleri kümesinin birbirinin çevirisi olduğunu belirtme).
| Mutation | Açıklama |
|---|---|
polylangSetMediaItemLanguage | Medya öğesinin dilini ayarlar. |
polylangSaveMediaItemTranslationAssociation | Medya öğesi için çeviri ilişkilendirmesini ayarlar. |
Örneğin aşağıdaki query, 3 medya öğesi için dili (İngilizce, İspanyolca ve Fransızca olarak) tanımlar ve ardından bu 3 medya öğesinin birbirinin çevirisi olduğunu belirtir:
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] Varlıkları Polylang'ın varsayılan diline göre filtreleme
polylangLanguagesBy filtresinde DEFAULT enum değeri sağlanarak varlıkları Polylang'da ayarlanan varsayılan dile göre filtrelemek artık mümkündür:
{
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] Otomasyon: GraphQL yanıtını bilgi günlüklerine kaydetme
Bir otomasyon yürütmesine ait tam GraphQL yanıtı (başarılı olup olmadığından bağımsız olarak hem WP-Cron hem de Automation Rules için) wp-content/gatographql/logs/info.log dosyasına kaydedilir.