WordPress-Daten abfragen
WordPress-Daten abfragenPages

Pages

Hier sind einige Beispiele für queries zum Abrufen von Seitendaten.

Seiten abrufen

Eine einzelne Seite:

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

Eine Liste von Seiten:

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

Seiten der obersten Ebene mit ihren Unterseiten:

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

Seiten des eingeloggten Benutzers abrufen

Die Felder page, pages und pageCount rufen nur Seiten mit dem Status "publish" ab.

Um Seiten des eingeloggten Benutzers mit beliebigem Status ("publish", "pending", "draft" oder "trash") abzurufen, verwende diese Felder:

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

Seiten erstellen

Nur eingeloggte Benutzer können Seiten erstellen.

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

Seiten aktualisieren

Nur Benutzer mit den entsprechenden Berechtigungen können Seiten bearbeiten.

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

Diese query verwendet verschachtelte Mutations, um die Seite zu aktualisieren:

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