WPGraphQL Get Extended
get_extended()
de WordPress.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.