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

Pages

Voici des exemples de requêtes pour récupérer des données de pages.

Récupérer des pages

Une seule page :

query {
  page(by: { id: 2 }) {
    id
    title
    content
    url
    date
  }
}

Une liste de pages :

query {
  pages(pagination: { limit: 5 }) {
    id
    title
    excerpt
    url
    dateStr(format: "d/m/Y")
  }
}

Pages de niveau supérieur avec leurs enfants :

query {
  pages(filter: { parentID: 0 }) {
    ...PageProps
    children {
      ...PageProps
      children(pagination: { limit: 3 }) {
        ...PageProps
      }
    }
  }
}
 
fragment PageProps on Page {
  id
  title
  date
  urlPath
}

Récupérer les pages de l'utilisateur connecté

Les champs page, pages et pageCount ne récupèrent que les pages avec le statut "publish".

Pour récupérer les pages de l'utilisateur connecté, avec n'importe quel statut ("publish", "pending", "draft" ou "trash"), utilisez ces champs :

  • myPage
  • myPages
  • myPageCount
query {
  myPages(filter: { status: [draft, pending] }) {
    id
    title
    status
  }
}

Créer des pages

Seuls les utilisateurs connectés peuvent créer des pages.

mutation {
  createPage(
    input: {
      title: "Hi there!"
      contentAs: { html: "How do you like it?" }
      status: draft
    }
  ) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
      ...on GenericErrorPayload {
        code
      }
    }
    pageID
    page {
      status
      title
      content
      url
      date
      author {
        id
        name
      }
    }
  }
}

Mettre à jour des pages

Seuls les utilisateurs disposant des capacités correspondantes peuvent modifier des pages.

mutation {
  updatePage(
    input: {
      id: 2,
      title: "This is my new title",
    }
  ) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
      ...on GenericErrorPayload {
        code
      }
    }
    page {
      id
      title
    }
  }
}

Cette requête utilise des mutations imbriquées pour mettre à jour la page :

mutation {
  page(by: { id: 2 }) {
    originalTitle: title
    update(input: {
      title: "This is my new title",
      contentAs: { html: "This rocks!" }
    }) {
      status
      errors {
        __typename
        ...on ErrorPayload {
          message
        }
      }
      page {
        newTitle: title
        content
      }
    }
  }
}