WordPress-Daten abfragenBenutzerdefinierte Inhalte
Benutzerdefinierte Inhalte
Mehr dazu in der Anleitung Mit benutzerdefinierten Inhalten arbeiten.
Dies sind Beispiele für queries zum Abrufen von Daten benutzerdefinierter Inhalte.
Im Schema gemappte CPTs
Benutzerdefinierte Inhalte mit den CPTs "post" und "page" abrufen:
query {
customPosts(filter: { customPostTypes: ["post", "page"] }) {
...CustomPostProps
...PostProps
...PageProps
}
}
fragment CustomPostProps on CustomPost {
__typename
title
excerpt
url
dateStr(format: "d/m/Y")
}
fragment PostProps on Post {
tags {
id
name
}
}
fragment PageProps on Page {
author {
id
name
}
}Nicht im Schema gemappte CPTs
Benutzerdefinierte Inhalte für verschiedene CPTs abrufen (die in den Einstellungen aktiviert sein müssen, um abgefragt werden zu können):
query {
customPosts(
filter:{
customPostTypes: [
"page",
"nav_menu_item",
"wp_block",
"wp_global_styles"
]
}
) {
... on CustomPost {
id
title
customPostType
status
}
__typename
}
}CPTs nach einer benutzerdefinierten Taxonomie filtern
Benutzerdefinierte Inhalte nach Kategorie gefiltert abrufen:
query {
customPosts(
filter: {
categories: {
includeBy: {
ids: [26, 28]
}
taxonomy: "product-cat"
}
}
) {
... on CustomPost {
id
title
}
... on GenericCustomPost {
categories(taxonomy: "product-cat") {
id
}
}
}
}Benutzerdefinierte Inhalte erstellen
Um CPTs zu erstellen, die keine zusätzlichen Felder gegenüber einem Post benötigen, kannst du die Mutation createCustomPost verwenden.
Diese query erstellt einen Eintrag für den CPT "my-portfolio":
mutation {
createCustomPost(
input: {
customPostType: "my-portfolio"
title: "My photograph"
contentAs: { html: "This is my photo, check it out." }
}
) {
status
errors {
__typename
...on ErrorPayload {
message
}
...on GenericErrorPayload {
code
}
}
customPost {
__typename
...on CustomPost {
id
title
content
}
}
}
}Benutzerdefinierte Inhalte aktualisieren
Diese query aktualisiert den Titel und den Inhalt für den CPT "my-portfolio":
mutation {
updateCustomPost(input: {
id: 1
customPostType: "my-portfolio"
title: "Updated title"
contentAs: { html: "Updated content" }
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPost {
__typename
...on CustomPost {
id
title
content
}
}
}
}Oder mit verschachtelten Mutations:
mutation {
customPost(by: { id: 1 }, customPostTypes: "my-portfolio") {
originalTitle: title
update(input: {
title: "This is my new title",
contentAs: { html: "This rocks!" }
}) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
customPost {
__typename
...on CustomPost {
id
newTitle: title
content
}
}
}
}
}