Media
Đây là các ví dụ về queries để lấy và chỉnh sửa dữ liệu media.
Lấy dữ liệu media
Một mục media, với nguồn ảnh ở các kích thước khác nhau:
query {
mediaItem(by: { id: 1647 }) {
id
srcSet
src
thumbSizeSrc: src(size: "thumbnail")
largeSizeSrc: src(size: "large")
}
}Tất cả các mục media (với mime type mặc định là "image"), và tất cả các kích thước ảnh:
query {
imageSizeNames
mediaItems {
id
srcSet
src(size: "medium")
sizes(size: "thumbnail")
width
height
slug
url
urlPath
title
caption
altText
description
date
mimeType
}
}Ảnh đại diện của các bài viết:
query {
posts {
id
hasFeaturedImage
featuredImage {
id
src
width
height
}
}
}Lọc các mục media:
{
mediaItems(
pagination: { limit: 3 },
sort: { by: TITLE },
filter: { dateQuery: { after: "2012-01-02" } }
) {
id
src
height
width
}
}Lấy các mục video và audio:
{
mediaItems(
filter: { mimeTypes: ["video", "audio"] }
) {
id
src
}
}Lấy các mục media của người dùng đang đăng nhập
Các trường myMediaItemCount, myMediaItems và myMediaItem lấy các mục media của người dùng đang đăng nhập:
query GetMediaItems {
me {
slug
}
myMediaItemCount
myMediaItems(pagination: {
limit: 3
}) {
...MediaItemData
}
myMediaItem(by: { id: 1380 }) {
...MediaItemData
}
}
fragment MediaItemData on Media {
id
mimeType
src
author {
slug
}
}Đặt ảnh đại diện cho bài viết
Chúng ta có thể tham chiếu đến bất kỳ ảnh nào đang tồn tại trong thư viện Media.
mutation {
setFeaturedImageOnCustomPost(
input: {
customPostID: 1499,
mediaItemID: 1505
}
) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPostID
customPost {
...on WithFeaturedImage {
featuredImage {
id
src
}
}
}
}
}Với nested mutations:
mutation {
post(by: { id: 1499 }) {
setFeaturedImage(input: { mediaItemID: 1647 }) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPostID
customPost {
...on WithFeaturedImage {
featuredImage {
id
src
}
}
}
}
}
}Tải tệp đính kèm lên thư viện Media
Mutation createMediaItem mặc định không chấp nhận các URL không an toàn.
Đọc hướng dẫn Tạo các mục media từ URL không an toàn để tìm hiểu cách ghi đè hành vi này.
Truyền 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
}
}
}Truyền trực tiếp nội dung của tệp đính kèm:
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
}
}
}Tạo một mục media bằng cách tái sử dụng tệp đính kèm từ một mục media khác:
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
}
}
}Cập nhật một mục media
Thay đổi văn bản thay thế và chú thích của một ảnh:
mutation UpdateMediaItem {
updateMediaItem(input: {
id: 1380
caption: "Updated caption"
altText: "Updated alt text"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
mediaItem {
altText
caption
}
}
}