Media
Berikut adalah contoh query untuk mengambil dan memutasi data media.
Mengambil media
Sebuah item media, dengan sumber gambar dalam berbagai ukuran:
query {
mediaItem(by: { id: 1647 }) {
id
srcSet
src
thumbSizeSrc: src(size: "thumbnail")
largeSizeSrc: src(size: "large")
}
}Semua item media (dengan mime type "image" secara default), dan semua ukuran gambar:
query {
imageSizeNames
mediaItems {
id
srcSet
src(size: "medium")
sizes(size: "thumbnail")
width
height
slug
url
urlPath
title
caption
altText
description
date
mimeType
}
}Gambar unggulan dari posts:
query {
posts {
id
hasFeaturedImage
featuredImage {
id
src
width
height
}
}
}Memfilter item media:
{
mediaItems(
pagination: { limit: 3 },
sort: { by: TITLE },
filter: { dateQuery: { after: "2012-01-02" } }
) {
id
src
height
width
}
}Mengambil item video dan audio:
{
mediaItems(
filter: { mimeTypes: ["video", "audio"] }
) {
id
src
}
}Mengambil item media milik pengguna yang sedang login
Field myMediaItemCount, myMediaItems, dan myMediaItem mengambil item media milik pengguna yang sedang login:
query GetMediaItems {
me {
slug
}
myMediaItemCount
myMediaItems(pagination: {
limit: 3
}) {
...MediaItemData
}
myMediaItem(by: { id: 1380 }) {
...MediaItemData
}
}
fragment MediaItemData on Media {
id
mimeType
src
author {
slug
}
}Menetapkan gambar unggulan pada sebuah post
Kita dapat mereferensikan gambar apa pun yang ada di perpustakaan Media.
mutation {
setFeaturedImageOnCustomPost(
input: {
customPostID: 1499,
mediaItemID: 1505
}
) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPostID
customPost {
...on WithFeaturedImage {
featuredImage {
id
src
}
}
}
}
}Dengan nested mutations:
mutation {
post(by: { id: 1499 }) {
setFeaturedImage(input: { mediaItemID: 1647 }) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPostID
customPost {
...on WithFeaturedImage {
featuredImage {
id
src
}
}
}
}
}
}Mengunggah lampiran ke Perpustakaan Media
Mutasi createMediaItem tidak menerima URL yang tidak aman secara default.
Baca panduan Creating media items from unsafe URLs untuk mempelajari cara mengganti perilaku ini.
Meneruskan 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
}
}
}Meneruskan konten lampiran secara langsung:
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
}
}
}Membuat item media dengan menggunakan ulang file lampiran dari item media lain:
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
}
}
}Memperbarui item media
Mengubah teks alternatif dan keterangan gambar:
mutation UpdateMediaItem {
updateMediaItem(input: {
id: 1380
caption: "Updated caption"
altText: "Updated alt text"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
mediaItem {
altText
caption
}
}
}