Medios
Estos son ejemplos de consultas para obtener y mutar datos de medios.
Obtener medios
Un elemento multimedia, con la fuente de la imagen en diferentes tamaños:
query {
mediaItem(by: { id: 1647 }) {
id
srcSet
src
thumbSizeSrc: src(size: "thumbnail")
largeSizeSrc: src(size: "large")
}
}Todos los elementos multimedia (con mime type "image" por defecto), y todos los tamaños de imagen:
query {
imageSizeNames
mediaItems {
id
srcSet
src(size: "medium")
sizes(size: "thumbnail")
width
height
slug
url
urlPath
title
caption
altText
description
date
mimeType
}
}La imagen destacada de los posts:
query {
posts {
id
hasFeaturedImage
featuredImage {
id
src
width
height
}
}
}Filtrar elementos multimedia:
{
mediaItems(
pagination: { limit: 3 },
sort: { by: TITLE },
filter: { dateQuery: { after: "2012-01-02" } }
) {
id
src
height
width
}
}Obtener elementos de vídeo y audio:
{
mediaItems(
filter: { mimeTypes: ["video", "audio"] }
) {
id
src
}
}Obtener los elementos multimedia del usuario con sesión iniciada
Los campos myMediaItemCount, myMediaItems y myMediaItem obtienen los elementos multimedia del usuario con sesión iniciada:
query GetMediaItems {
me {
slug
}
myMediaItemCount
myMediaItems(pagination: {
limit: 3
}) {
...MediaItemData
}
myMediaItem(by: { id: 1380 }) {
...MediaItemData
}
}
fragment MediaItemData on Media {
id
mimeType
src
author {
slug
}
}Establecer la imagen destacada de un post
Podemos hacer referencia a cualquier imagen existente en la biblioteca de medios.
mutation {
setFeaturedImageOnCustomPost(
input: {
customPostID: 1499,
mediaItemID: 1505
}
) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPostID
customPost {
...on WithFeaturedImage {
featuredImage {
id
src
}
}
}
}
}Con mutaciones anidadas:
mutation {
post(by: { id: 1499 }) {
setFeaturedImage(input: { mediaItemID: 1647 }) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPostID
customPost {
...on WithFeaturedImage {
featuredImage {
id
src
}
}
}
}
}
}Subir un adjunto a la biblioteca de medios
La mutación createMediaItem no acepta URLs no seguras por defecto.
Lee la guía Crear elementos multimedia desde URLs no seguras para aprender cómo anular este comportamiento.
Pasando la 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
}
}
}Pasando directamente el contenido del adjunto:
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
}
}
}Crear un elemento multimedia reutilizando el archivo adjunto de otro elemento multimedia:
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
}
}
}Actualizar un elemento multimedia
Cambiar el texto alternativo y el pie de foto de una imagen:
mutation UpdateMediaItem {
updateMediaItem(input: {
id: 1380
caption: "Updated caption"
altText: "Updated alt text"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
mediaItem {
altText
caption
}
}
}