Media
Questi sono esempi di query per recuperare e modificare i dati multimediali.
Recuperare i media
Un elemento multimediale, con la sorgente dell'immagine in diverse dimensioni:
query {
mediaItem(by: { id: 1647 }) {
id
srcSet
src
thumbSizeSrc: src(size: "thumbnail")
largeSizeSrc: src(size: "large")
}
}Tutti gli elementi multimediali (con il mime type "image" per impostazione predefinita), e tutte le dimensioni dell'immagine:
query {
imageSizeNames
mediaItems {
id
srcSet
src(size: "medium")
sizes(size: "thumbnail")
width
height
slug
url
urlPath
title
caption
altText
description
date
mimeType
}
}L'immagine in evidenza dei post:
query {
posts {
id
hasFeaturedImage
featuredImage {
id
src
width
height
}
}
}Filtrare gli elementi multimediali:
{
mediaItems(
pagination: { limit: 3 },
sort: { by: TITLE },
filter: { dateQuery: { after: "2012-01-02" } }
) {
id
src
height
width
}
}Recuperare gli elementi video e audio:
{
mediaItems(
filter: { mimeTypes: ["video", "audio"] }
) {
id
src
}
}Recuperare gli elementi multimediali dell'utente connesso
I campi myMediaItemCount, myMediaItems e myMediaItem recuperano gli elementi multimediali dell'utente connesso:
query GetMediaItems {
me {
slug
}
myMediaItemCount
myMediaItems(pagination: {
limit: 3
}) {
...MediaItemData
}
myMediaItem(by: { id: 1380 }) {
...MediaItemData
}
}
fragment MediaItemData on Media {
id
mimeType
src
author {
slug
}
}Impostare l'immagine in evidenza di un post
Possiamo fare riferimento a qualsiasi immagine esistente nella libreria multimediale.
mutation {
setFeaturedImageOnCustomPost(
input: {
customPostID: 1499,
mediaItemID: 1505
}
) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPostID
customPost {
...on WithFeaturedImage {
featuredImage {
id
src
}
}
}
}
}Con mutation annidate:
mutation {
post(by: { id: 1499 }) {
setFeaturedImage(input: { mediaItemID: 1647 }) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPostID
customPost {
...on WithFeaturedImage {
featuredImage {
id
src
}
}
}
}
}
}Caricare un allegato nella libreria multimediale
La mutation createMediaItem non accetta URL non sicuri per impostazione predefinita.
Leggi la guida Creare elementi multimediali da URL non sicuri per scoprire come modificare questo comportamento.
Passando 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
}
}
}Passando direttamente il contenuto dell'allegato:
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
}
}
}Creare un elemento multimediale riutilizzando il file allegato di un altro elemento multimediale:
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
}
}
}Aggiornare un elemento multimediale
Modificare il testo alternativo e la didascalia di un'immagine:
mutation UpdateMediaItem {
updateMediaItem(input: {
id: 1380
caption: "Updated caption"
altText: "Updated alt text"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
mediaItem {
altText
caption
}
}
}