Aller au contenu
Photo d’Armand Philippot
Logo d’Armand Philippot

Armand Philippot

Intégrateur web

WPGraphQL Get Extended

Publié le :
Ce plugin ajoute un nouveau champ dans WPGraphQL contenant les données de la fonction get_extended() de WordPress.
Licence :
GPL-2.0-or-later
Dépôts :
Technologies :
WordPress
WPGraphQL

Requis

Pour fonctionner, ce plugin requiert l'installation et l'activation de WPGraphQL dans WordPress.

Qu'est-ce que get_extended ?

Si vous ne connaissez pas encore cette fonction de WordPress, je vous invite à lire la documentation.

Installation

Vous devez récupérer le plugin depuis l'un de mes dépôts (Github ou Gitlab suivant votre préférence). Puis, une fois téléchargé, il faut placer le plugin dézippé dans le répertoire wp-content/plugins/. Ensuite, il ne vous reste plus qu'à activer le plugin dans l'administration de WordPress.

Utilisation

Lorsque le plugin est activé un nouveau champ apparaît dans WPGraphQL pour chaque type de contenu (articles, custom post types...). Ce champ contient lui-même deux champs :

  • beforeMore : la partie avant le tag <!-- more --> de WordPress,
  • afterMore : la partie après ce même tag.

Vous pouvez également choisir le format. Comme le champ content présent par défaut dans WPGraphQL, vous avez le choix entre raw et rendered.

À noter : Si votre article ne contient pas la balise <!-- more -->, le contenu sera présent dans beforeMore et afterMore sera vide.

Exemple

Voici un exemple de requête pour récupérer un article par slug avec uniquement les champs beforeMore et afterMore.

query SinglePost($slug: String!) {
  postBy(slug: $slug) {
    contentParts {
      beforeMore
      afterMore
    }
  }
}

Pourquoi ce plugin ?

Déjà dans la précédente version du site, j'utilisais la fonction get_extended() de WordPress. Celle-ci est pratique si vous souhaitez placer l'excerpt dans un autre conteneur que le contenu principal de l'article.

Lorsque j'ai commencé à utiliser WPGraphQL, j'espérais retrouver le même principe. Par défaut, ce n'est pas possible. Vous pouvez avoir l'excerpt et le contenu mais dans ce cas, le contenu contient également l'excerpt. J'aurai pu filtrer le contenu pour retirer l'excerpt, mais il me semblait plus judicieux d'utiliser un plugin pour cela.