Interrogare i dati di WordPress
Interrogare i dati di WordPressCategorie personalizzate

Categorie personalizzate

Scopri di più nella guida Lavorare con le categorie personalizzate.

Questi sono esempi di queries per recuperare i dati delle tassonomie di categorie personalizzate.

Tassonomie non mappate allo schema

Recuperare le categorie con la tassonomia "product-category":

query {
  categories(taxonomy: "product-category") {
    __typename
 
    ...on Category {
      count
      description
      id
      name
      slug
      url
    }
    
    ...on GenericCategory {
      taxonomy   
      customPostCount
      customPosts {
        __typename
        ...on CustomPost {
          id
          title
        }
      }
    }
  }
}

Recuperare le categorie associate a un custom post

Il tipo GenericCustomPost possiede il campo categories, per recuperare le categorie personalizzate aggiunte al custom post:

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

Filtrare i custom post per categoria

Per recuperare i custom post con determinate categorie, possiamo usare l'input filter.categories:

query {
  customPostsByCatIDs: customPosts(
    filter: {
      categories: {
        includeBy: {
          ids: [26, 28]
        }
        taxonomy: "product-cat"
      }
    }
  ) {
    id
    title
  }
 
  customPostsByCatSlugs: customPosts(
    filter: {
      categories: {
        includeBy: {
          slugs: ["news", "sports"]
        }
        taxonomy: "product-cat"
      }
    }
  ) {
    id
    title
  }
}

Impostare le categorie su un custom post

Mutation:

mutation {
  setCategoriesOnCustomPost(
    input: {
      id: 1499, 
      categoryIDs: [2, 5]
      taxonomy: "cat-taxonomy"
    }
  ) {
    status
    errors {
      __typename
      ... on ErrorPayload {
        message
      }
    }
    customPostID
    customPost {
      categories(taxonomy: "cat-taxonomy") {
        id
      }
      categoryNames(taxonomy: "cat-taxonomy")
    }
  }
}

Mutation annidata:

mutation {
  customPost(by: { id: 1499 }) {
    setCategories(
      input: {
        categoryIDs: [2, 5]
        taxonomy: "cat-taxonomy"
      }
    ) {
      status
      errors {
        __typename
        ... on ErrorPayload {
          message
        }
      }
      customPostID
      customPost {
        categories(taxonomy: "cat-taxonomy") {
          id
        }
        categoryNames(taxonomy: "cat-taxonomy")
      }
    }
  }
}

Creare, aggiornare ed eliminare una categoria personalizzata

Questa query crea, aggiorna ed elimina i termini di categoria per una categoria personalizzata 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
  }
}