Rest API

3

Le Rest API de WordPress est la fonctionnalité préférée des développeurs WordPress n'affectionnant pas particulièrement WordPress 🖤.

Elle permet aux éditeurs de continuer d'entrer/modifier du contenu dans le tableau de bord de WordPress, comme dans tout site WordPress classique. Tout en permettant aux développeurs d'accéder aux contenus en JavaScript via des JSON plutôt que d'avoir à utiliser les templates PHP de WordPress.

Utilisation de base

Par défaut, le Rest API est déjà présent sur tout site WordPress. Pour y avoir accès, il suffit d'ajouter /wp-json/wp/v2/ à la fin de l'url du site en question.

Par exemple:

https://site.com/wp-json/wp/v2/

Le page retourné ressemble probablement à un mur de texte illisible. Il s'agit en fait d'un fichier JSON minifié contenant tous les contenus du site, affichés sur une seule ligne.

Afin de rendre ce contenu plus facilement lisible, des extensions permettent d'afficher les JSON minifiés en format non minifiés. Par exemple, JSON View sur Chrome ou JSON View sur Firefox 🦊

Routes

Pour des raisons de performance et de facilité de traitement, il est généralement préférable de ne charger que les informations qui seront utilisées. Pour ce faire, il est possible d'utiliser ce que l'on appelle des routes.

Par exemple, si seulement les pages sont requises, il est possible de spécifier la route

https://site.com/wp-json/wp/v2/pages

Qui retournera un JSON ne contenant que les pages publiées.

Dans cet exemple, la partie https://site.com/wp-json/wp/v2 correspond à l'URL de base de l'API. Tandis que /pages est la route spécifiant que seuls les contenus de type page doivent-être retourné.

Si un autre type de publication doit être retourné. Par exemple, les articles, ou en anglais posts, il suffit de spécifier une route différente.

Par exemple: /posts.

https://site.com/wp-json/wp/v2/posts

Il est possible de spécifier des routes encore plus précises. Notamment en spécifiant l'ID de la publication désirée.

Par exemple, si seulement la page avec le ID 10 est requis, il est possible de spécifier la route /pages/10.

https://site.com/wp-json/wp/v2/pages/10

Compatibilité ACF

Par défaut, les informations stockées dans des champs ACF ne sont pas retournées par le Rest API de WordPress. Heureusement, il est possible de les inclure facilement en ajoutant l'extension ACF to REST API de Aires Gonçalves.

Aussi tôt l'extension installée, les champs ACF seront visibles dans le JSON retourné dans une propriété nommée ACF.

Affichage

Une fois les JSONs désirés identifiés, il ne reste plus qu'à afficher leurs informations!

Par exemple, dans la page single.php servant à afficher les articles, il serait possible de déclarer une balise <script> et d'effectuer un fetch afin de récupérer les informations de l'article courant:

fetch("/wp-json/wp/v2/posts/<?php the_ID(); ?>")
  .then(response => response.json())
  .then(data => console.log(data));

the_ID() est une fonction de WordPress retournant le id de la page courante, ex: 10.

Donnez votre opinion
sur les notes de cours sur cette page.
Merci d'avoir partagé ton opinion 😎
Pssst, c'est 💯 anonyme