Requêter les données des plugins
Requêter les données des pluginsPolylang

Polylang

Exemples de requêtes pour interagir avec les données du plugin Polylang.

Filtrer les données par langue

Cette requête récupère les publications dans la langue sélectionnée :

{
  posts(
    filter: {
      polylangLanguagesBy: {
        codes: ["en"]
      }
    }
  ) {
    title
    polylangLanguage {
      code
    }
  }
 
  pages(
    filter: {
      polylangLanguagesBy: {
        locales: ["en_US"]
      }
    }
  ) {
    title
    polylangLanguage {
      locale
    }
  }
 
  customPosts(
    filter: {
      polylangLanguagesBy: {
        predefined: DEFAULT
      }
      customPostTypes: "some-cpt"
    }
  ) {
    title
    polylangLanguage {
      code
    }
  }
}

Cette requête récupère différentes entités pour plusieurs langues :

query FilterByLanguage($postId: ID!, $languageCodes: [String!]) {
  posts(by: { id: $postId }, filter: {
    polylangLanguagesBy: { codes: $languageCodes }
  }) {
    id
    title
  }
 
  pages(by: { id: $postId }, filter: {
    polylangLanguagesBy: { codes: $languageCodes }
  }) {
    id
    title
  }
 
  customPosts(by: { id: $postId }, filter: {
    customPostTypes: ["some-cpt"]
    polylangLanguagesBy: { codes: $languageCodes }
  }) {
    id
    title
  }
 
  postCategories(by: { id: $postId }, filter: {
    polylangLanguagesBy: { codes: $languageCodes }
  }) {
    id
    name
  }
 
  postTags(by: { id: $postId }, filter: {
    polylangLanguagesBy: { codes: $languageCodes }
  }) {
    id
    name
  }
 
  categories(
    by: { id: $postId },
    taxonomy: "some-category"
    filter: { polylangLanguagesBy: { codes: $languageCodes } }
  ) {
    id
    name
  }
 
  tags(
    by: { id: $postId },
    taxonomy: "some-tag"
    filter: { polylangLanguagesBy: { codes: $languageCodes } }
  ) {
    id
    name
  }
 
  mediaItems(by: { id: $postId }, filter: {
    polylangLanguagesBy: { codes: $languageCodes }
  }) {
    id
    title
  }
}

Définir la langue pour une entité

Cette requête définit la langue pour 3 publications (en anglais, espagnol et français), puis définit que ces 3 publications sont des traductions les unes des autres :

mutation {
  post1: polylangSetCustomPostLanguage(input: {id: 1, languageBy: { code: "en" }}) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
  }
  post2: polylangSetCustomPostLanguage(input: {id: 2, languageBy: { code: "es" }}) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
  }
  post3: polylangSetCustomPostLanguage(input: {id: 3, languageBy: { code: "fr" }}) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
  }
  polylangSaveCustomPostTranslationAssociation(input: {
    ids: [1, 2, 3]
  }) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
  }
}