Articles
Voici des exemples de requêtes pour récupérer et modifier les données des articles.
Récupérer des articles
Un seul article, avec son auteur et ses étiquettes :
query {
post(by: { id: 1 }) {
title
content
url
date
author {
id
name
}
tags {
id
name
}
}
}Une liste de 5 articles avec leurs commentaires :
query {
posts(pagination: { limit: 5 }) {
id
title
excerpt
url
dateStr(format: "d/m/Y")
comments(pagination: { limit: 5 }) {
id
date
content
}
}
}Une liste d'articles prédéfinis :
query {
posts(filter: { ids: [1499, 1657] }) {
id
title
excerpt
url
date
}
}Filtrer des articles :
query {
posts(
filter: { search: "wordpress", dateQuery: { after: "2019-06-01" } },
sort: { order: ASC, by: TITLE }
) {
id
title
excerpt
url
status
}
}Compter les résultats d'articles :
query {
postCount(
filter: { search: "api" }
)
}Paginer des articles :
query {
posts(
pagination: {
limit: 5,
offset: 5
}
) {
id
title
}
}Articles avec étiquettes :
query {
posts(
filter: { tagSlugs: ["graphql", "wordpress", "plugin"] }
) {
id
title
}
}Articles avec catégories :
query {
posts(
filter: { categoryIDs: [50, 190] }
) {
id
title
}
}Récupérer des valeurs méta :
query {
posts {
title
metaValue(
key: "_wp_page_template",
)
}
}Récupérer les articles de l'utilisateur connecté
Les champs post, posts et postCount ne récupèrent que les articles avec le statut "publish".
Pour récupérer les articles de l'utilisateur connecté, avec n'importe quel statut ("publish", "pending", "draft" ou "trash"), utilisez ces champs :
myPostmyPostsmyPostCount
query {
myPosts(filter: { status: [draft, pending] }) {
id
title
status
}
}Créer des articles
Seuls les utilisateurs connectés peuvent créer des articles.
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
}
}
}
}Mettre à jour des articles
Seuls les utilisateurs disposant des capacités correspondantes peuvent modifier des articles.
mutation {
updatePost(
input: {
id: 1,
title: "This is my new title",
}
) {
status
errors {
__typename
...on ErrorPayload {
message
}
...on GenericErrorPayload {
code
}
}
post {
id
title
}
}
}Cette requête utilise des mutations imbriquées pour mettre à jour l'article :
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
}
}
}
}