Requêter les données WordPress
Requêter les données WordPressMédias

Médias

Voici des exemples de requêtes pour récupérer et muter des données multimédias.

Récupérer des médias

Un élément multimédia, avec la source de l'image en différentes tailles :

query {
  mediaItem(by: { id: 1647 }) {
    id
    srcSet
    src
    thumbSizeSrc: src(size: "thumbnail")
    largeSizeSrc: src(size: "large")
  }
}

Tous les éléments multimédias (avec le mime type "image" par défaut), et toutes les tailles d'image :

query {
  imageSizeNames
  mediaItems {
    id
    srcSet
    src(size: "medium")
    sizes(size: "thumbnail")
    width
    height
    slug
    url
    urlPath
    title
    caption
    altText
    description
    date
    mimeType
  }
}

L'image mise en avant des posts :

query {
  posts {
    id
    hasFeaturedImage
    featuredImage {
      id
      src
      width
      height
    }
  }
}

Filtrer les éléments multimédias :

{
  mediaItems(
    pagination: { limit: 3 },
    sort: { by: TITLE },
    filter: { dateQuery: { after: "2012-01-02" } }
  ) {
    id
    src
    height
    width
  }
}

Récupérer les éléments vidéo et audio :

{
  mediaItems(
    filter: { mimeTypes: ["video", "audio"] }
  ) {
    id
    src
  }
}

Récupérer les éléments multimédias de l'utilisateur connecté

Les champs myMediaItemCount, myMediaItems et myMediaItem récupèrent les éléments multimédias de l'utilisateur connecté :

query GetMediaItems {
  me {
    slug
  }
  
  myMediaItemCount
 
  myMediaItems(pagination: {
    limit: 3
  }) {
    ...MediaItemData
  }
 
  myMediaItem(by: { id: 1380 }) {
    ...MediaItemData
  }
}
 
fragment MediaItemData on Media {
  id
  mimeType
  src
  author {
    slug
  }
}

Définir l'image mise en avant d'un post

Nous pouvons référencer n'importe quelle image existant dans la bibliothèque de médias.

mutation {
  setFeaturedImageOnCustomPost(
    input: {
      customPostID: 1499,
      mediaItemID: 1505
    }
  ) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    customPostID
    customPost {
      ...on WithFeaturedImage {
        featuredImage {
          id
          src
        }
      }
    }
  }
}

Avec des mutations imbriquées :

mutation {
  post(by: { id: 1499 }) {
    setFeaturedImage(input: { mediaItemID: 1647 }) {
      status
      errors {
        __typename
        ...on ErrorPayload {
          message
        }
      }
      customPostID
      customPost {
        ...on WithFeaturedImage {
          featuredImage {
            id
            src
          }
        }
      }
    }
  }
}

Téléverser une pièce jointe dans la bibliothèque de médias

La mutation createMediaItem n'accepte pas les URLs non sécurisées par défaut.

Lisez le guide Créer des éléments multimédias depuis des URLs non sécurisées pour apprendre comment modifier ce comportement.

En passant l'URL :

mutation CreateMediaItems {
  fromURL: createMediaItem(input: {
    from: {
      url: {
        source: "https://gatographql.com/assets/GatoGraphQL-logo.webp"
      }
    }
    caption: "Gato GraphQL logo"
    altText: "This is the Gato GraphQL logo"
  }) {
    mediaItemID
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    mediaItem {
      altText
      caption
      mimeType
      slug
      src
      title
    }
  }
}

En passant directement le contenu de la pièce jointe :

mutation CreateMediaItems {
  createMediaItem(input: {
    from: {
      contents: {
        body: """
<html>
  <body>
    Hello world!
  </body>
</html>
        """
        filename: "hello-world.html"
      }
    }
    title: "Hello world!"
  }) {
    mediaItemID
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    mediaItem {
      altText
      caption
      mimeType
      slug
      src
      title
    }
  }
}

Créer un élément multimédia en réutilisant le fichier joint d'un autre élément multimédia :

mutation CreateMediaItems {
  createMediaItem(input: {
    from: {
      mediaItemBy: {
        id: 1361
      }
    }
    title: "Hello world!"
  }) {
    mediaItemID
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    mediaItem {
      altText
      caption
      mimeType
      slug
      src
      title
    }
  }
}

Mettre à jour un élément multimédia

Modifier le texte alternatif et la légende d'une image :

mutation UpdateMediaItem {
  updateMediaItem(input: {
    id: 1380
    caption: "Updated caption"
    altText: "Updated alt text"
  }) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    mediaItem {
      altText
      caption
    }
  }
}