Query data WordPress
Query data WordPressMedia

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
    }
  }
}