WordPress-Daten abfragen
WordPress-Daten abfragenBeiträge

Beiträge

Dies sind Beispiele für queries zum Abrufen und Ändern von Beitragsdaten.

Beiträge abrufen

Ein einzelner Beitrag mit Autor und Tags:

query {
  post(by: { id: 1 }) {
    title
    content
    url
    date
    author {
      id
      name
    }
    tags {
      id
      name
    }
  }
}

Eine Liste von 5 Beiträgen mit ihren Kommentaren:

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

Eine Liste vordefinierter Beiträge:

query {
  posts(filter: { ids: [1499, 1657] }) {
    id
    title
    excerpt
    url
    date
  }
}

Beiträge filtern:

query {
  posts(
    filter: { search: "wordpress", dateQuery: { after: "2019-06-01" } },
    sort: { order: ASC, by: TITLE }
  ) {
    id
    title
    excerpt
    url
    status
  }
}

Beitragsergebnisse zählen:

query {
  postCount(
    filter: { search: "api" }
  )
}

Beiträge paginieren:

query {
  posts(
    pagination: {
      limit: 5,
      offset: 5
    }
  ) {
    id
    title
  }
}

Beiträge mit Tags:

query {
  posts(
    filter: { tagSlugs: ["graphql", "wordpress", "plugin"] }
  ) {
    id
    title
  }
}

Beiträge mit Kategorien:

query {
  posts(
    filter: { categoryIDs: [50, 190] }
  ) {
    id
    title
  }
}

Meta-Werte abrufen:

query {
  posts {
    title
    metaValue(
      key: "_wp_page_template",
    )
  }
}

Beiträge des eingeloggten Benutzers abrufen

Die Felder post, posts und postCount rufen nur Beiträge mit dem Status "publish" ab.

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

  • myPost
  • myPosts
  • myPostCount
query {
  myPosts(filter: { status: [draft, pending] }) {
    id
    title
    status
  }
}

Beiträge erstellen

Nur eingeloggte Benutzer können Beiträge erstellen.

mutation {
  createPost(
    input: {
      title: "Hi there!"
      contentAs: { html: "How do you like it?" }
      status: draft
      tags: ["demo", "plugin"]
    }
  ) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
      ...on GenericErrorPayload {
        code
      }
    }
    postID
    post {
      status
      title
      content
      url
      date
      author {
        id
        name
      }
      tags {
        id
        name
      }
    }
  }
}

Beiträge aktualisieren

Nur Benutzer mit den entsprechenden Berechtigungen können Beiträge bearbeiten.

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

Diese query verwendet verschachtelte Mutations, um den Beitrag zu aktualisieren:

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