Requêter les données WordPress
Requêter les données WordPressÉtiquettes personnalisées

Étiquettes personnalisées

Voici des exemples de requêtes pour récupérer des données de taxonomies d'étiquettes personnalisées.

Taxonomies non mappées au schéma

Récupérer des étiquettes avec la taxonomie "product-tag" :

query {
  tags(taxonomy: "product-tag") {
    __typename
 
    ...on Tag {
      count
      description
      id
      name
      slug
      url
    }
    
    ...on GenericTag {
      taxonomy   
      customPostCount
      customPosts {
        __typename
        ...on CustomPost {
          id
          title
        }
      }
    }
  }
}

Récupérer les étiquettes associées à une entrée personnalisée

Le type GenericCustomPost possède le champ tags, pour récupérer les étiquettes personnalisées ajoutées à l'entrée personnalisée :

query {
  customPosts(
    filter: { customPostTypes: "product" }
  ) {
    __typename
 
    ... on GenericCustomPost {
      tags(taxonomy: "product-tag") {
        __typename
        id
        name
        taxonomy
      }
    }
  }
}

Filtrer les entrées personnalisées par étiquette

Pour récupérer les entrées personnalisées avec des étiquettes données, nous pouvons utiliser l'input filter.tags :

query {
  customPostsByTagIDs: customPosts(
    filter: {
      tags: {
        includeBy: {
          ids: [26, 28],
        }
        taxonomy: "product-tag"
      }
    }
  ) {
    id
    title
  }
 
  customPostsByTagSlugs: customPosts(
    filter: {
      tags: {
        includeBy: {
          slugs: ["tango", "rock"]
        }
        taxonomy: "product-tag"
      }
    }
  ) {
    id
    title
  }
}

Définir des étiquettes sur une entrée personnalisée

Mutation :

mutation {
  setTagsOnCustomPost(
    input: {
      id: 1499, 
      tags: ["api", "development"]
      taxonomy: "tag-taxonomy"
    }
  ) {
    status
    errors {
      __typename
      ... on ErrorPayload {
        message
      }
    }
    customPostID
    customPost {
      tags(taxonomy: "tag-taxonomy") {
        id
      }
      tagNames(taxonomy: "tag-taxonomy")
    }
  }
}

Mutation imbriquée :

mutation {
  customPost(by: { id: 1499 }) {
    setTags(
      input: {
        tags: ["api", "development"]
        taxonomy: "tag-taxonomy"
      }
    ) {
      status
      errors {
        __typename
        ... on ErrorPayload {
          message
        }
      }
      customPostID
      customPost {
        tags(taxonomy: "tag-taxonomy") {
          id
        }
        tagNames(taxonomy: "tag-taxonomy")
      }
    }
  }
}

Créer, mettre à jour et supprimer une étiquette personnalisée

Cette requête crée, met à jour et supprime des termes d'étiquette pour une étiquette personnalisée 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
}