Zapytania o dane WordPressNiestandardowe posty
Niestandardowe posty
Przeczytaj więcej w przewodniku Praca z niestandardowymi postami.
Oto przykłady queries do pobierania danych niestandardowych postów.
CPT zmapowane w schemacie
Pobierz niestandardowe posty z CPT "post" i "page":
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
}
}CPT niezmapowane w schemacie
Pobierz niestandardowe posty dla różnych CPT (które muszą być włączone, aby można było je odpytywać przez Ustawienia):
query {
customPosts(
filter:{
customPostTypes: [
"page",
"nav_menu_item",
"wp_block",
"wp_global_styles"
]
}
) {
... on CustomPost {
id
title
customPostType
status
}
__typename
}
}Filtrowanie CPT według niestandardowej taksonomii
Pobierz niestandardowe posty filtrując według kategorii:
query {
customPosts(
filter: {
categories: {
includeBy: {
ids: [26, 28]
}
taxonomy: "product-cat"
}
}
) {
... on CustomPost {
id
title
}
... on GenericCustomPost {
categories(taxonomy: "product-cat") {
id
}
}
}
}Tworzenie niestandardowych postów
Aby tworzyć CPT, które nie wymagają żadnych dodatkowych pól ponad te z Post, możesz użyć mutacji createCustomPost.
Ta query tworzy wpis dla 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
}
}
}
}Aktualizowanie niestandardowych postów
Ta query aktualizuje tytuł i treść dla 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
}
}
}
}Lub używając zagnieżdżonych mutacji:
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
}
}
}
}
}