การ Query ข้อมูล WordPressมีเดีย
มีเดีย
ต่อไปนี้คือตัวอย่าง queries สำหรับดึงข้อมูลและแก้ไขข้อมูลมีเดีย
การดึงข้อมูลมีเดีย
รายการมีเดีย พร้อม URL รูปภาพในขนาดต่างๆ:
query {
mediaItem(by: { id: 1647 }) {
id
srcSet
src
thumbSizeSrc: src(size: "thumbnail")
largeSizeSrc: src(size: "large")
}
}รายการมีเดียทั้งหมด (ค่าเริ่มต้น mime type คือ "image") พร้อมขนาดรูปภาพทั้งหมด:
query {
imageSizeNames
mediaItems {
id
srcSet
src(size: "medium")
sizes(size: "thumbnail")
width
height
slug
url
urlPath
title
caption
altText
description
date
mimeType
}
}รูปภาพเด่นของโพสต์:
query {
posts {
id
hasFeaturedImage
featuredImage {
id
src
width
height
}
}
}การกรองรายการมีเดีย:
{
mediaItems(
pagination: { limit: 3 },
sort: { by: TITLE },
filter: { dateQuery: { after: "2012-01-02" } }
) {
id
src
height
width
}
}การดึงข้อมูลรายการวิดีโอและเสียง:
{
mediaItems(
filter: { mimeTypes: ["video", "audio"] }
) {
id
src
}
}การดึงข้อมูลมีเดียของผู้ใช้ที่ล็อกอินอยู่
ฟิลด์ myMediaItemCount, myMediaItems และ myMediaItem ใช้สำหรับดึงข้อมูลรายการมีเดียของผู้ใช้ที่ล็อกอินอยู่:
query GetMediaItems {
me {
slug
}
myMediaItemCount
myMediaItems(pagination: {
limit: 3
}) {
...MediaItemData
}
myMediaItem(by: { id: 1380 }) {
...MediaItemData
}
}
fragment MediaItemData on Media {
id
mimeType
src
author {
slug
}
}การตั้งค่ารูปภาพเด่นของโพสต์
เราสามารถอ้างอิงรูปภาพใดก็ได้ที่มีอยู่ใน Media Library
mutation {
setFeaturedImageOnCustomPost(
input: {
customPostID: 1499,
mediaItemID: 1505
}
) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPostID
customPost {
...on WithFeaturedImage {
featuredImage {
id
src
}
}
}
}
}โดยใช้ nested mutations:
mutation {
post(by: { id: 1499 }) {
setFeaturedImage(input: { mediaItemID: 1647 }) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPostID
customPost {
...on WithFeaturedImage {
featuredImage {
id
src
}
}
}
}
}
}การอัปโหลดไฟล์แนบไปยัง Media Library
mutation createMediaItem ไม่รับ URL ที่ไม่ปลอดภัยโดยค่าเริ่มต้น
อ่านคู่มือ Creating media items from unsafe URLs เพื่อเรียนรู้วิธีเปลี่ยนแปลงพฤติกรรมนี้
การส่ง 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
}
}
}การส่งเนื้อหาของไฟล์แนบโดยตรง:
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
}
}
}การสร้างรายการมีเดียโดยนำไฟล์แนบจากรายการมีเดียอื่นมาใช้ซ้ำ:
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
}
}
}การอัปเดตรายการมีเดีย
การเปลี่ยนข้อความทางเลือกและคำบรรยายของรูปภาพ:
mutation UpdateMediaItem {
updateMediaItem(input: {
id: 1380
caption: "Updated caption"
altText: "Updated alt text"
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
mediaItem {
altText
caption
}
}
}Next