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