# WordPress REST API : au cœur du CMS

Le système de gestion de contenu (CMS pour Content Management System) WordPress jouit d’une grande popularité. Comparé à d’autres CMS, il permet de créer assez facilement des sites Internet répondant à différents besoins. Avec de solides connaissances d’Office, soigner sa présence sur le Web à l’aide d’un rédacteur ne pose aucun problème. Par ailleurs, les administrateurs Web ont accès à plus de **55 000 plugins** capables d’exécuter les nombreuses tâches d’un site Internet et qui sont, pour la plupart, gratuits dans leur version de base.

---

### Conseil

Nous avons intégré tous les avantages pour votre site Internet WordPress dans nos packs « Essential », « Business » et « Unlimited ». Profitez de la configuration facile, de la sécurité intégrée et de la plateforme optimisée pour votre [hébergement WordPress](https://www.ionos.fr/hebergement/hebergement-wordpress "Pour un WordPress plus rapide, plus simple et plus sûr").

---

## Qu’est-ce que l’API REST de WordPress ?

Le nom WordPress REST API désigne une **interface** permettant de communiquer avec la **base de données** utilisée par WordPress. L’abréviation API signifie « Application Programming Interface », en français « Interface de programmation d’application ». Elle permet l’échange entre différents logiciels en respectant une logique prédéfinie, à l’instar de deux personnes qui peuvent discuter et se comprendre uniquement en parlant **une langue commune**. Retrouvez des informations plus détaillées sur notre article « [API](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/quest-ce-quune-api/ "Qu’est-ce qu’une API&nbsp;?") : ce qu’il faut savoir sur les interfaces de programmation ».

L’abréviation **REST** signifie « Representational State Transfer ». Il s’agit des principes de l’échange informatique tels que définis en 1994 par l’informaticien américain Roy Fielding :

- **Unité** : les URL pour accéder aux ressources doivent être uniques, cohérentes et disponibles par le biais d’une méthode commune, comme GET.
- **Séparation client/serveur** : si la technologie évolue côté serveur (p. ex. WordPress), l’application côté client (p. ex. une application) doit toujours pouvoir y accéder.
- **Sans état** : le serveur ne change pas d’état lorsqu’il reçoit une nouvelle requête de l’API. Le serveur n’enregistre pas les requêtes.
- **Peut être mis en cache** : assure une rapidité et une conformité excellentes côté serveur et côté client.
- **Système à couches** : l’accès est possible sur différentes couches (layer).
- **Code on Demand** (optionnel) : le code pour l’exécution locale est transmis au client uniquement en cas de besoin.

Depuis la **version 4.7** de **WordPress**, ces exigences sont intégrées dans le **Core**, la programmation centrale du système de gestion de contenu. Auparavant, jusqu’au 13 mai 2018, il fallait utiliser le plugin « WP REST API (WP API) ». Depuis la **version 5.x**, d’autres éléments ont été ajoutés au core de WordPress pour **étendre** les possibilités de communication avec d’autres applications (également des applications Web).

## Que peut-on faire avec l’API REST de WordPress ?

L’interface permet de **communiquer directement avec la base de données utilisée par WordPress**, où toutes les informations d’un site Internet sont stockées. Cette base de données est exploitée par le système de gestion de bases de données **MySQL**, un logiciel open source. Il existe des commandes pour communiquer qui autorisent l’accès via l’API WordPress « intégré ». Plusieurs méthodes existent pour y parvenir.

### Accès à la base de données avec l’interpréteur de commandes

WordPress REST API permet d’accéder au contenu d’un site WordPress grâce à **l’invite de commande** sous **Windows** :

- Clic droit sur le logo Windows &gt; « Exécuter » &gt; taper « cmd » dans la fenêtre &gt; « OK »
- Activer la recherche dans la barre des tâches &gt; taper « cmd » &gt; cliquer sur « Invite de commande »

Ou avec **Terminal** sous **macOS** :

- Appuyer en même temps sur les touches « cmd » + \[espace\], taper « Terminal », puis double-cliquer sur le résultat de la recherche
- Dans la partie haute du menu sur le bureau, choisissez « Aller à » &gt; « Fonctionnalités » ; dans la fenêtre qui s’ouvre, double-cliquer sur « Terminal »
- Dans le « Dock », cliquer sur « Programmes » &gt; « Fonctionnalités » &gt; « Terminal »

Entrez la commande suivante dans l’invite clignotante sur l’écran, par exemple après

```none
C:\Users\VotreNomUtilisateur>_
```

Entrez la commande suivante :

```none
curl -X OPTIONS -i https://votredomaine.fr/wp-json/
```

Lancez le processus en appuyant sur « Entrée ». En quelques instants, le résultat s’affiche à l’écran. Il s’agit des **données de base du site Internet** et des options autorisées (« OPTIONS »). On peut, entre autres, voir que la commande GET est autorisée : « Allow: GET ».

[![Image: L’API REST de WordPress via l’interpréteur de commande ](https://www.ionos.fr/digitalguide/fileadmin/_processed_/a/9/csm_wordpress-rest-api-1_804dca0b9f.webp "L’API REST de WordPress via l’interpréteur de commande ")](https://www.ionos.fr/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/wordpress-rest-api-1.jpg) Essai de connexion à l’API REST via l’invite de commande ou Terminal avec obtention d’une réponse HTTP.       Entrez la commande suivante :

```none
curl -X GET http://votredomaine.fr/wp-json/
```

Vous obtenez toutes les informations de la base de données, un contenu identique à celui que vous récupérez avec la méthode décrite dans la section suivante.

### Utiliser l’API REST de WordPress dans le navigateur

Vous pouvez également lire le contenu d’une base de données WordPress à l’aide d’une **requête HTTP dans le navigateur**. On utilise cette fois encore JSON :

```none
https://votredomaine.fr/wp-json/
```

---

### Remarque

JSON est l’abréviation de « JavaScript Object Notation », un format texte pour l’échange de données. Il est facile à apprendre et à lire et polyvalent à l’utilisation, comme le montrent, entre autres, notre tutoriel [JSON-LD d’après Schema.org](https://www.ionos.fr/digitalguide/sites-internet/creation-de-sites-internet/tutoriel-json-ld-dapres-schemaorg/ "Tutoriel : JSON-LD d’après Schema.org") et notre article sur les [requêtes interdomaines avec JSONP](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/jsonp/ "JSONP").

---

[![Image: API REST de WordPress : communication via un navigateur ](https://www.ionos.fr/digitalguide/fileadmin/_processed_/d/7/csm_wordpress-rest-api-2_a61c437342.webp "API REST de WordPress : communication via un navigateur ")](https://www.ionos.fr/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/wordpress-rest-api-2.jpg) La requête HTTP vers l’API REST génère un résultat dans le navigateur comprenant toutes les données existantes du site WordPress, affichées ici dans l’onglet JSON et en-têtes.       Les informations interrogées vous sont présentées comme sur un livre ouvert. Pour consulter plus en détails le contenu du site, l’API REST de WordPress permet une interrogation à l’aide d’un grand nombre de commandes pour retourner des composantes précises de la base de données. On peut ainsi par exemple interroger les **posts (publications)** avec :

```none
https://votredomaine.fr/wp-json/wp/v2/posts
```

Vous obtenez un aperçu de toutes les publications présentes dans la base de données, y compris les éventuelles versions antérieures, les liens, les contenus médiatiques, les auteurs et bien plus. Chaque publication est identifiée de manière univoque dans la base de données WordPress par son ID :

[![Image: API REST WordPress : aperçu d’une publication dans la base de données ](https://www.ionos.fr/digitalguide/fileadmin/_processed_/9/c/csm_wordpress-rest-api-3_6ee2f1d9d5.webp "API REST WordPress : aperçu d’une publication dans la base de données ")](https://www.ionos.fr/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/wordpress-rest-api-3.jpg) La publication avec l’ID 6576 dans la base de données MySQL du site WordPress.       Cette fois, pour consulter une publication précise dans le navigateur, on complète la commande avec son ID :

```none
https://ihredomain.de/wp-json/wp/v2/posts/6576
```

[![Image: API REST de WordPress : lire une publication spécifique grâce à son ID ](https://www.ionos.fr/digitalguide/fileadmin/_processed_/a/c/csm_wordpress-rest-api-4_000b2f752e.webp "API REST de WordPress : lire une publication spécifique grâce à son ID ")](https://www.ionos.fr/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/wordpress-rest-api-4.jpg) L’ID d’une publication permet de lire toutes les informations de la base de données qui lui sont rattachées.     Cette procédure s’applique à tous les contenus : outre les publications, on peut rechercher les **pages (*pages*)**, les **contenus médiatiques (*media*)**, les **auteurs (*author*)** et bien plus. Le guide de l’API REST de WordPress et l’ensemble de ses commandes est disponible sur les pages développeurs du site WordPress.org, à la rubrique [REST API Handbook](https://developer.WordPress.org/rest-api/ "REST API Handbook (en anglais)").

## L’API REST de WordPress en pratique

Dans quels cas peut-on avoir besoin de cette API WordPress ? Prenons un exemple simple et pratique pour l’illustrer : un nouveau site Internet doit recueillir les actualités d’autres sites Internet. Cette opération fonctionne avec l’API REST de WordPress uniquement si les sites déjà existants sont programmés sous WordPress. Une **requête est envoyée sur les serveurs choisis pour obtenir les contenus et leurs ID**.

[![Image: API de WordPress : un exemple simple et pratique ](https://www.ionos.fr/digitalguide/fileadmin/_processed_/c/3/csm_FR-API-WordPress_d676b271e5.webp "API de WordPress : un exemple simple et pratique ")](https://www.ionos.fr/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/FR-API-WordPress.png) Le site Internet XYZ-NEWS recueille les informations ciblées et suivies des fournisseurs des sites X, Y et Z puis les met à disposition de l’utilisateur lorsque celui-ci les demande.       Plusieurs options de programmation permettent de retourner toujours les contenus les plus récents, notamment avec le script PHP ou la bibliothèque jQuery de JavaScript. Découvrez ces méthodes à l’aide de deux exemples de code simple pour l’API de WordPress.

### Lire une publication avec PHP

Pour lire une publication d’un autre site Internet WordPress, il faut rédiger une **portion de code** sur une page HTML, entre les balises *&lt;body&gt; … &lt;/body&gt;*. Cette page doit être capable de travailler en PHP. Dans notre exemple, elle porte le nom « test-wp-rest-api.php ». La requête JSON détaillée précédemment permet de connaître le nom du champ qui sera retourné (*guid, title, link, content, etc.*). La portion de code se compose d’un script PHP, qui contient les informations, et d’une portion en HTML, qui retourne les données lues via PHP :

```none
<!--?php</codesnippet-->
$url = 'https://www.meineseite.de/wp-json/wp/v2/posts/6576'; // Chemin de la requête JSON avec ID
$data = file_get_contents($url); // Indiquer le contenu dans une variable
$mydata = json_decode($data, true); // Décoder JSON
?>
<h1>PHP : lire une publication avec l’API REST de WordPress</h1> // Titre
<div id="mydata"></div>
<!--?php echo $mydata['content']['rendered']; ?--> // Transmission du « content » avec l’ID 6576
```

[![Image: API REST de WordPress : un exemple pratique ](https://www.ionos.fr/digitalguide/fileadmin/_processed_/f/d/csm_wordpress-rest-api-6_fd2843e9e0.webp "API REST de WordPress : un exemple pratique ")](https://www.ionos.fr/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/wordpress-rest-api-6.jpg) Voici le résultat à l’écran de la publication prise en exemple, avec l’ID 6576, en haut avec jQuery, en bas avec PHP.       ###  Lire la publication avec jQuery

Une alternative pour lire le contenu consiste à utiliser jQuery. Pour ce faire, cette bibliothèque doit être **intégrée au header de la page**. Enfin, l’ensemble fonctionne aussi avec l’extension de fichier *.html*.

```none
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> // Intégrer jQuery
<script>// Portion de code pour lire les données de la publication</codesnippet></script>
$(function() {
$.getJSON('https://mtmedia.de/wp-json/wp/v2/posts/6576', function(alldata) {
var contentElm = alldata.content.rendered
$(contentElm).appendTo("#mydata");
});
});
<h1>jQuery : lire une publication avec l’API REST de WordPress </h1> // Titre
<div id="mydata"> Transmission du « content » de la publication avec l’ID 6576</div>
```

Le résultat qui s’affiche dans le navigateur est identique à celui de la requête programmée avec PHP. Avec jQuery, on obtient le contenu sans variable supplémentaire dans le container DIV « mydata ».

## Que se passe-t-il avec les sites utilisant un autre CMS ?

L’API qui nous concerne s’appelle WordPress REST API car elle fait partie intégrante de la programmation WordPress. Ainsi, cette interface est uniquement utilisable pour interroger des pages créées avec WordPress.

[![Image: API REST de WordPress : requête HTTP avec un autre CMS ](https://www.ionos.fr/digitalguide/fileadmin/_processed_/f/c/csm_wordpress-rest-api-7_e6e8594582.webp "API REST de WordPress : requête HTTP avec un autre CMS ")](https://www.ionos.fr/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/wordpress-rest-api-7.jpg) Lorsqu’un site Internet n’a pas été créé avec WordPress, il ne dispose pas d’une API REST. Faire une requête sur un site de ce type retourne une erreur 404.       La tentative de requête retourne une **erreur 404**. Il existe d’autres solutions pour interroger la base de données du CMS de ce type de sites Internet.

## Bloquer l’accès à l’API REST de WordPress

Tout le monde n’a pas envie de rendre facilement accessibles et exploitables les informations de son site Internet. Pour interdire l’utilisation des données, il existe une **barrière**, que l’on active dans le back-office de WordPress.

[![Image: API REST de WordPress : bloquer l’accès aux données ](https://www.ionos.fr/digitalguide/fileadmin/_processed_/4/8/csm_wordpress-rest-api-8_7a637d6b97.webp "API REST de WordPress : bloquer l’accès aux données ")](https://www.ionos.fr/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/wordpress-rest-api-8.jpg) Avec le plugin WordPress « Disable WP REST API », l’accès aux données du site Internet est bloqué. Seuls les utilisateurs authentifiés peuvent les consulter.       Le plugin « Disable WP REST API » de la bibliothèque WordPress doit être activé après son installation (comme tout autre plugin) pour **interdire l’accès aux personnes non autorisées**. Aucun paramétrage supplémentaire n’est nécessaire.

[![Image: API REST de WordPress : accès interdit grâce au plugin ](https://www.ionos.fr/digitalguide/fileadmin/_processed_/7/6/csm_wordpress-rest-api-9_9f74643d6c.webp "API REST de WordPress : accès interdit grâce au plugin ")](https://www.ionos.fr/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/wordpress-rest-api-9.jpg) Le plugin WordPress « Disable WP REST API » interdit l’accès.       Le code de statut « **401 » (Unauthorized)** signifie que le serveur a refusé les requêtes HTTP car l’utilisateur ne dispose pas d’une authentification valide. Contrairement au code « 403 », il est tout de même possible de s’identifier.

De nombreux sites Internet sont protégés de cette façon pour **empêcher** automatiquement **le vol de contenu**. S’autoriser l’utilisation de contenus extérieurs à partir du site Internet d’un autre fournisseur n’est pas qu’une question de politesse, mais aussi de respect du droit d’auteur. Pour tester son propre site Internet, il suffit de désactiver le plugin. Le contenu de la base de données sera de nouveau interrogeable comme expliqué ci-dessus. Les données du plugin ne peuvent pas être perdues.


This is a markdown version of: [https://www.ionos.fr/digitalguide/hebergement/blogs/wordpress-rest-api/](https://www.ionos.fr/digitalguide/hebergement/blogs/wordpress-rest-api/) for AI/LLM consumption.