Requêter les données WordPress
Requêter les données WordPressArticles

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 :

  • myPost
  • myPosts
  • myPostCount
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
      }
    }
  }
}