Query data WordPress
Query data WordPressHalaman

Halaman

Berikut adalah contoh query untuk mengambil data halaman.

Mengambil halaman

Satu halaman:

query {
  page(by: { id: 2 }) {
    id
    title
    content
    url
    date
  }
}

Daftar halaman:

query {
  pages(pagination: { limit: 5 }) {
    id
    title
    excerpt
    url
    dateStr(format: "d/m/Y")
  }
}

Halaman tingkat atas beserta anak-anaknya:

query {
  pages(filter: { parentID: 0 }) {
    ...PageProps
    children {
      ...PageProps
      children(pagination: { limit: 3 }) {
        ...PageProps
      }
    }
  }
}
 
fragment PageProps on Page {
  id
  title
  date
  urlPath
}

Mengambil halaman milik pengguna yang sedang login

Field page, pages, dan pageCount hanya mengambil halaman dengan status "publish".

Untuk mengambil halaman milik pengguna yang sedang login, dengan status apa pun ("publish", "pending", "draft", atau "trash"), gunakan field berikut:

  • myPage
  • myPages
  • myPageCount
query {
  myPages(filter: { status: [draft, pending] }) {
    id
    title
    status
  }
}

Membuat halaman

Hanya pengguna yang sudah login yang dapat membuat halaman.

mutation {
  createPage(
    input: {
      title: "Hi there!"
      contentAs: { html: "How do you like it?" }
      status: draft
    }
  ) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
      ...on GenericErrorPayload {
        code
      }
    }
    pageID
    page {
      status
      title
      content
      url
      date
      author {
        id
        name
      }
    }
  }
}

Memperbarui halaman

Hanya pengguna dengan kemampuan yang sesuai yang dapat mengedit halaman.

mutation {
  updatePage(
    input: {
      id: 2,
      title: "This is my new title",
    }
  ) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
      ...on GenericErrorPayload {
        code
      }
    }
    page {
      id
      title
    }
  }
}

Query ini menggunakan nested mutation untuk memperbarui halaman:

mutation {
  page(by: { id: 2 }) {
    originalTitle: title
    update(input: {
      title: "This is my new title",
      contentAs: { html: "This rocks!" }
    }) {
      status
      errors {
        __typename
        ...on ErrorPayload {
          message
        }
      }
      page {
        newTitle: title
        content
      }
    }
  }
}
Prev