WP Umbrella Logo

API REST WordPress : récupérer tous les articles (Guide 2026)

L'équipe WP Umbrella
-

L'API REST de WordPress permet à des applications externes de lire, créer, mettre à jour et supprimer du contenu WordPress à l'aide de requêtes HTTP. Par défaut, elle renvoie 10 articles par page, avec une limite maximale fixée à 100. Pour les développeurs qui gèrent des sites comptant des milliers d'articles, cette limite devient rapidement un problème.

Ce guide présente trois solutions de contournement pour la pagination, les quatre méthodes d'authentification parmi lesquelles vous devrez choisir, ainsi que les erreurs les plus courantes rencontrées par les développeurs lors de la création d'applications basées sur l'API REST. Il contient des exemples de code en JavaScript et en PHP, prêts à être copiés et adaptés.

Ce guide a été mis à jour pour WordPress 7.0, WordPress 6.8 et les mots de passe d'application.

Qu'est-ce que l'API REST de WordPress ?

L'API REST (Representational State Transfer) de WordPress (Application Programming Interface) permet aux développeurs d'interagir avec WordPress en utilisant des méthodes et des protocoles HTTP standard. Elle permet à des applications externes, des sites web et des services d'accéder de manière programmatique et de manipuler le contenu de WordPress, comme les articles, les pages, les utilisateurs, et plus encore, via Internet.

Imaginez votre site web comme une bibliothèque, remplie d'une vaste collection de livres, chacun représentant un élément de contenu. Dans ce scénario, l'API REST joue le rôle du bibliothécaire qui peut aller chercher, organiser et vous fournir tous les livres dont vous avez besoin, quel que soit l'endroit où ils sont stockés ou le format dans lequel ils se trouvent. Cette interaction est facilitée par l'envoi et la réception d'objets JSON (JavaScript Object Notation).

C'est pourquoi l'API REST de WordPress est un atout majeur pour les propriétaires et les développeurs de sites web qui s'y connaissent en technologie.

Conseil : WordPress fournit des ressources pour les développeurs qui comprennent une explication complète des les tenants et les aboutissants de l'API REST et de son fonctionnement.

Prêt à développer votre agence WordPress ?

Installez WP Umbrella sur vos sites web en une minute et découvrez une nouvelle façon de gérer plusieurs sites WordPress.

Commencer gratuitement

Pourquoi utiliser l'API REST de WordPress ?

  • Polyvalence et automatisation : L'API REST de WP permet aux développeurs d'effectuer un large éventail d'actions, y compris la création, la lecture, la mise à jour et la suppression d'articles, de pages et d'autres types de contenu sans même se connecter au tableau de bord de WordPress. Cette flexibilité ouvre un monde de possibilités pour les développeurs, leur permettant de construire des sites web plus dynamiques, interactifs et robustes.
  • Amélioration du développement de WordPress : Avec l'API REST, vous pouvez créer et gérer des sites WordPress en utilisant n'importe quel langage de programmation capable d'envoyer des requêtes HTTP et d'interpréter JSON. Vous ne serez pas limité à PHP; vous pouvez utiliser JavaScript, Python ou tout autre langage avec lequel vous êtes à l'aise, ce qui est particulièrement intéressant pour le développement web moderne.
  • Intégration : Intégrez en toute transparence votre site web à d'autres applications, services ou plateformes. Qu'il s'agisse de se connecter à un système de gestion de la relation client (CRM), à une plateforme de commerce électronique ou à une application mobile, l'API REST rend les choses possibles.
  • Personnalisation : Vous pouvez utiliser cette API pour créer des applications, des thèmes et des plugins personnalisés qui étendent les fonctionnalités de votre site WordPress.
  • Authentification et sécurité : Assurez la sécurité de la transmission des données et du contrôle d'accès en mettant en œuvre des mécanismes d'authentification tels que OAuth2.0.
Comment fonctionne l'API REST de WordPress

Pour exploiter pleinement le potentiel de l'API REST de WordPress, il est essentiel de comprendre certains termes clés :

Que sont les routes et les points de terminaison dans l'API REST de WordPress ?

Il s'agit des URL que l'API expose pour interagir avec votre site WordPress. 

Chaque itinéraire correspond à une ressource spécifique, par exemple :

  • Messages (/wp/v2/posts). 
  • Pages (/wp/v2/pages). 
  • Types d'articles personnalisés. 

Chaque point d'arrivée correspond donc à une action spécifique que vous pouvez effectuer sur cette ressource, par exemple :

  • Lecture.
  • Créer.
  • Mise à jour
  • Suppression.

Comment fonctionnent les requêtes de l'API REST de WordPress ?

Il s'agit des requêtes HTTP que vous envoyez à l'API REST pour interagir avec votre site WordPress. Chaque requête contient des informations sur l'action que vous souhaitez entreprendre et sur quelle ressource.

Par exemple, GET /wp-json/wp/v2/posts.

  • GET est la méthode HTTP qui indique que vous souhaitez récupérer des données.
  • /wp-json/wp/v2/ est l'URL de base de l'API REST de WordPress.
  • posts est l'URL de l'extrémité qui spécifie la ressource avec laquelle vous voulez interagir. Dans ce cas, il s'agit de la ressource "posts".

À quoi ressemble une réponse de l'API REST de WordPress ?

Il s'agit des objets JSON que l'API REST vous renvoie en réponse à vos demandes. Chaque réponse contient des informations sur le résultat de votre demande, telles que les données d'un message que vous avez demandé ou un message sur le succès ou l'échec d'une opération de mise à jour.

Voici un exemple de réponse JSON très basique :

{
  "status": "success",
  "message": "Post retrieved successfully",
  "data": {
    "post_id": 12345,
    "title": "Sample Post",
    "content": "This is a sample post content.",
    "author": "John Doe",
    "timestamp": "2023-09-14T12:00:00Z"
  }
}

Qu'est-ce qu'un schéma de l'API REST de WordPress ?

Le schéma est un plan qui définit la structure des objets JSON que l'API REST utilise dans les demandes et les réponses. Il s'agit d'un élément essentiel pour garantir la cohérence des échanges de données et l'interopérabilité entre différents systèmes.

Il définit les champs que chaque objet peut avoir et les types de valeurs que ces champs peuvent contenir.

Que sont les classes de contrôleurs dans l'API REST de WordPress ?

Les classes de contrôleurs sont les classes PHP que l'API REST utilise pour gérer les demandes et générer des réponses. Elles jouent un rôle crucial dans la gestion et le traitement des requêtes HTTP entrantes et dans la génération des réponses appropriées. 

Chaque classe de contrôleur correspond à une ressource spécifique et contient des méthodes pour traiter chaque type de requête qui peut être faite sur cette ressource.

Ils sont chargés de servir d'intermédiaires entre le client (généralement un navigateur web ou une application mobile) et l'application côté serveur. Ils gèrent également l'acheminement des requêtes HTTP entrantes vers les méthodes appropriées au sein du contrôleur, en veillant à ce que la ressource demandée soit traitée correctement.

Par exemple, si vous avez une API REST pour gérer les utilisateurs, vous pouvez avoir une classe UserController avec des méthodes comme getUser, createUser, updateUser et deleteUser. Ces méthodes gèrent leurs types de requêtes HTTP respectifs.

Avec la connaissance de ces composants, vous pouvez commencer à explorer les puissantes capacités que cette fonctionnalité offre pour le développement de WordPress.

Quelles méthodes HTTP l'API REST de WordPress utilise-t-elle ?

Lorsque vous travaillez avec l'API REST de WP, il y a quatre méthodes HTTP principales (ou commandes) que vous utiliserez : GET, POST, PUT et DELETE. Chacune de ces méthodes correspond à un type d'action particulier que vous pouvez effectuer sur une ressource.

  • GET: Utilisé pour récupérer des données sur le serveur. Il s'agit de la méthode la plus courante, qui permet de demander des données à une ressource donnée.
  • POST: Utilisé pour envoyer des données au serveur afin de créer une nouvelle ressource en soumettant des données à traiter à une ressource spécifiée telle que des messages, des pages, etc.
  • PUT: Utilisé pour mettre à jour des données existantes sur le serveur. Il remplace toutes les représentations actuelles de la ressource cible par le contenu téléchargé.
  • DELETE: permet de supprimer des données existantes sur le serveur en supprimant toutes les représentations actuelles de la ressource cible spécifiée dans l'URL.

La structure et la conception de votre application influencent la manière dont ces méthodes sont utilisées. Les interactions entre les différents composants, l'architecture globale et le contexte dans lequel votre application fonctionne jouent tous un rôle dans l'utilisation des requêtes GET, POST, PUT et DELETE.

Le choix entre les différentes applications de ces méthodes HTTP, par exemple via cURL ou JavaScript, dépend de plusieurs facteurs. Ceux-ci comprennent le contexte de votre application, l'environnement dans lequel elle s'exécute et votre familiarité avec les technologies à utiliser.

cURL est un outil de ligne de commande polyvalent qui vous permet d'interagir avec des services web et des API directement à partir de votre terminal ou de l'invite de commande. Par exemple, si vous travaillez côté serveur (comme dans des scripts PHP ou Python) ou dans un environnement de script shell(Bash, PowerShell, etc.), cURL peut être un moyen efficace d'effectuer des requêtes HTTP vers des API. 

En outre, de nombreux cadres et bibliothèques web modernes fournissent leurs propres outils pour gérer les requêtes HTTP et les interactions avec l'API. Par exemple, dans le monde PHP, des bibliothèques comme Guzzle sont couramment utilisées à cette fin - mais cUrl reste une bonne alternative.

En revanche, si vous créez des applications web qui s'exécutent dans des navigateurs, le JavaScript classique ainsi que l'AJAX (Asynchronous JavaScript and XML) ou l'API Fetch, plus récente, sont couramment utilisés pour effectuer ces requêtes HTTP.

Voici un exemple très basique de récupération d'articles de WordPress à l'aide de JavaScript et de l'API Fetch :

// Define the API endpoint for retrieving posts
const apiUrl = 'https://your-wordpress-site.com/wp-json/wp/v2/posts';

// Make a GET request to retrieve posts
fetch(apiUrl)
  .then((response) => {
    if (!response.ok) {
      throw new Error(`HTTP error! Status: ${response.status}`);
    }
    return response.json();
  })
  .then((data) => {
    // Process the retrieved data (in this case, a list of posts will be displayed in the console log)
    console.log(data);
  })
  .catch((error) => {
    console.error('Error:', error);
  });

En fonction de votre configuration WordPress, vous devrez peut-être gérer l'authentification. Par défaut, certaines données peuvent être accessibles au public, mais pour des données restreintes ou des actions telles que la création ou la mise à jour de contenu, vous devrez authentifier vos requêtes. Vous pouvez utiliser des méthodes d'authentification comme OAuth, JWT, ou l'authentification de base, en fonction de votre configuration.

Comment accéder à tous les articles de WordPress en utilisant l'API REST

Par défaut, l'API REST de WordPress renvoie 10 articles par page, soit le même nombre que celui affiché par WordPress dans la liste des articles de l'interface d'administration. Vous pouvez modifier le nombre par défaut d'articles par page dans les paramètres de WordPress, ou indiquer un autre nombre dans la requête API. Pour indiquer un autre nombre d'articles par page dans la requête API, vous pouvez utiliser le paramètre de requête `per_page`.

Par exemple, la requête suivante permet de récupérer cinq messages par page :

https://your-wordpress-site.com/wp-json/wp/v2/posts?per_page=5

Cependant, le nombre maximum d'articles que l'API WordPress peut récupérer par page est de 100. Cette limite est mise en place pour éviter de surcharger le serveur avec un trop grand nombre de requêtes.

Heureusement, il existe un moyen de contourner cette contrainte en utilisant la pagination.

La pagination consiste à diviser un grand ensemble de données, comme des messages ou des commentaires, en morceaux ou "pages" plus petits et plus faciles à gérer. Cela permet aux clients, comme les applications web ou les applications mobiles, de récupérer et d'afficher les données de manière incrémentielle plutôt que de récupérer l'ensemble des données en une seule demande. 

Elle est essentielle pour améliorer les performances et la convivialité des API lorsqu'elles traitent de grandes quantités de données, en particulier si vous savez que vous dépasserez la limite de 100 extractions par page.

Un tutoriel sur la récupération de tous les articles de WordPress en utilisant l'API REST et la pagination

Après vous être familiarisé avec le point de terminaison principal pour récupérer les articles d'un site WordPress, qui est https://YOUR_DOMAIN_NAME/wp-json/wp/v2/posts, et le paramètre per_page, qui vous permet de définir combien de résultats sont récupérés par page, il est temps de l'implémenter.

Tout d'abord, vous devez choisir un langage de programmation en fonction des besoins de votre projet. Dans ce tutoriel, nous donnerons des exemples d'exportation de tous les messages comme sauvegarde ou à des fins de migration, en utilisant à la fois JavaScript et PHP.

Utilisation de JavaScript

Vous pouvez utiliser l'exemple de code JavaScript suivant pour récupérer vos articles WordPress. Il enregistrera les données récupérées dans la console - vous pouvez ajuster le code pour ajouter votre action préférée (par exemple, l'analyse des données, la sauvegarde, le rapport).

// JavaScript for retrieving posts and logging the data in the console.

const apiUrl = 'https://your-wordpress-site.com/wp-json/wp/v2/posts';
const perPage = 10; // Number of posts per page
let allPosts = [];
let currentPage = 1;

async function fetchPosts() {
    try {
        while (true) {
            const response = await fetch(`${apiUrl}?per_page=${perPage}&page=${currentPage}`);
            const posts = await response.json();
            if (posts.length === 0) {
                break; // No more posts, exit loop
            }

            allPosts = allPosts.concat(posts);
            currentPage++;
        }

        displayPosts();
    } catch (error) {
        console.error('Error fetching posts:', error);
    }
}

function displayPosts() {
    console.log(allPosts);
}

// Call the function to fetch and log posts
fetchPosts();

Si vous souhaitez récupérer tous vos articles WordPress pour analyser le nombre d'articles publiés par mois au cours de l'année 2023, par exemple, utilisez l'extrait de code suivant :

// Function to fetch and display post counts per month in the year 2023.

function fetchAndDisplayPostCounts() {
  const apiUrl = 'https://your-wordpress-site.com/wp-json/wp/v2/posts'; // Replace with your WordPress site URL
  
  // Make a request to the WordPress REST API
  fetch(apiUrl)
    .then(response => response.json())
    .then(posts => {
      const postCounts = {}; // Object to store post counts for each month
      
      // Iterate through posts and analyze publication dates
      posts.forEach(post => {
        const date = new Date(post.date);
        const year = date.getFullYear();
        const month = date.getMonth() + 1; // Months are 0-indexed, so we add 1
        
        // Only consider posts from the year 2023
        if (year === 2023) {
          const monthKey = `${year}-${month}`;
          postCounts[monthKey] = (postCounts[monthKey] || 0) + 1;
        }
      });
      
      // Display post counts on the webpage
      const resultContainer = document.getElementById('post-counts'); // Replace with the actual element ID
      resultContainer.innerHTML = '<h2>Posts published in 2023 by month:</h2>';
      
      for (const monthKey in postCounts) {
        const monthCount = postCounts[monthKey];
        resultContainer.innerHTML += `<p>${monthKey}: ${monthCount} posts</p>`;
      }
    })
    .catch(error => {
      console.error('Error fetching posts:', error);
    });
}

// Call the function to fetch and display post counts
fetchAndDisplayPostCounts();

Utilisation de PHP

De la même manière que la section JavaScript précédente, vous pouvez utiliser l'exemple de code PHP suivant pour récupérer tous vos articles WordPress, qui seront imprimés dans la console (mais vous pouvez ajouter au code pour effectuer les actions souhaitées).

<?php
// Set your WordPress site URL
$site_url = 'https://your-wordpress-site.com';

// Set the API endpoint
$api_endpoint = $site_url . '/wp-json/wp/v2/posts';

// Initialize an array to store all posts
$all_posts = [];

// Loop to retrieve posts using pagination
$page = 1;
$per_page = 10; // Number of posts per page
while (true) {
    $response = wp_remote_get("$api_endpoint?per_page=$per_page&page=$page");
    
    if (is_wp_error($response)) {
        // Handle errors if needed
        error_log('Error fetching posts: ' . $response->get_error_message());
        break;
    }

    $body = wp_remote_retrieve_body($response);
    $posts = json_decode($body, true);

    if (empty($posts)) {
        // No more posts, exit loop
        break;
    }

    $all_posts = array_merge($all_posts, $posts);
    $page++;
}

// Log retrieved posts to error log
error_log('Retrieved posts: ' . print_r($all_posts, true));
?>

Voici la boucle de pagination en PHP. Adaptez-la pour les sauvegardes, les migrations ou tout autre cas d'utilisation impliquant une lecture en masse.

Par ailleurs, si vous souhaitez utiliser les données en dehors de WordPress, vous pouvez utiliser d'autres langages de programmation tels que Python ou Java, ou tout autre langage que vous utilisez pour le développement. Les mêmes principes de récupération des données de l'API s'appliquent.

Comment résoudre les erreurs courantes de l'API REST de WordPress

Travailler avec l'API REST de WordPress n'est pas toujours facile. Les développeurs peuvent rencontrer plusieurs problèmes, notamment des codes d'erreur HTTP, des problèmes d'authentification, des erreurs de partage de ressources entre origines (CORS), des limites de débit, des problèmes de configuration de serveur et des problèmes de compatibilité.

Erreurs courantes

  • Erreur 404 (erreur introuvable) : Cette erreur se produit généralement lorsque la ressource demandée est introuvable sur le serveur. Elle est souvent due à une faute de frappe dans l'URL de destination ou à l'inexistence de la ressource demandée. Pour corriger une erreur 404, vérifiez à nouveau l'URL de votre point d'accès pour vous assurer qu'elle est correcte. Vérifiez également que la ressource à laquelle vous essayez d'accéder existe sur votre site WordPress.
  • Erreur 500 (erreur interne du serveur) : Il s'agit d'un message d'erreur général indiquant un problème avec le serveur, mais qui ne précise pas la nature exacte du problème. Le débogage du serveur peut aider à identifier et à résoudre le problème. Vérifiez les journaux d'erreurs de votre serveur pour trouver des indices et assurez-vous que votre installation WordPress et vos plugins sont à jour.
  • Erreur 403 (erreur interdite) : Cette alerte survient lorsque le serveur comprend la demande mais refuse de l'autoriser. Cela peut être dû à des informations d'authentification ou à des autorisations incorrectes. Pour résoudre ce problème, vérifiez votre méthode d'authentification et assurez-vous que votre rôle d'utilisateur dispose des autorisations nécessaires pour effectuer l'action demandée.

Méthodes d'authentification

L'API REST de WordPress prend en charge plusieurs méthodes d'authentification, chacune présentant ses avantages et ses inconvénients ;

MéthodeComment cela fonctionne-t-il ?Révocation de jetonUn plugin externe est nécessaireIdéal pour
Authentification par cookieSession de connexion WordPress standard, limitée au même domaineLa déconnexion met fin à la sessionAucunScripts de même origine (par exemple, une page d'administration WordPress personnalisée appelant l'API)
Mots de passe des applicationsMot de passe de 24 caractères par application généré dans le profil utilisateur, haché avec bcryptPar application, révocable individuellement depuis le profil utilisateurAucun (intégré au cœur de WordPress depuis la version 5.6)La plupart des automatisations, des scripts de serveur à serveur, des pipelines d'intégration continue et des intégrations sans interface utilisateur
OAuth 2.0Processus d'autorisation permettant d'émettre des jetons d'accès sans divulguer les mots de passe des utilisateursExpiration du jeton avec actualisation, révocable par applicationOui (par exemple, le plugin WP REST API OAuth1)Applications tierces demandant l'autorisation d'agir au nom des utilisateurs de WordPress
JWT (jeton Web JSON)Jetons signés transmis dans les en-têtes HTTP, sans session côté serveurExpiration du jeton en fonction du TTL configuréOui (par exemple, authentification JWT pour WP-API)Applications monopages, applications mobiles, communication serveur à serveur avec des jetons à durée de vie limitée

Mise à jour

Une version antérieure de cet article présentait les mots de passe d'application comme « moins sûrs que l'OAuth ou le JWT ». Cette formulation était trompeuse. Les mots de passe d'application utilisent le hachage bcrypt, sont révocables individuellement pour chaque application et constituent l'approche recommandée par l'équipe principale de WordPress pour la plupart des cas d'utilisation de l'automatisation depuis WordPress 5.6. Le choix entre ces quatre méthodes repose sur des compromis liés au flux de travail (durée de vie du jeton, délégation à des tiers, portée utilisateur vs portée application), et non sur un classement de sécurité absolu. Choisissez la méthode qui correspond au modèle de menace de votre intégration.

Erreurs liées au partage des ressources entre pays d'origine (CORS)

CORS est une fonction de sécurité mise en œuvre par les navigateurs web pour contrôler et restreindre les scripts de pages web à faire des requêtes à des domaines autres que celui qui a servi la page web.

Les erreurs CORS se produisent généralement lorsque vous essayez de faire des requêtes à partir d'un site WordPress hébergé sur un domaine vers un autre domaine, par exemple lorsque vous utilisez l'API REST de WordPress pour récupérer des données d'un autre site ou lorsque vous intégrez du contenu provenant de sources externes comme YouTube ou d'autres services web.

Si vous avez le contrôle du domaine externe ou de l'API à laquelle vous essayez d'accéder, une solution est d'essayer de configurer les en-têtes CORS sur ce serveur pour autoriser explicitement les requêtes provenant du domaine de votre site WordPress. Vous pouvez définir des en-têtes comme Access-Control-Allow-Origin pour spécifier quels domaines sont autorisés.

Lorsque vous utilisez l'API REST de WordPress, il est important d'assurer la compatibilité avec différents environnements d'hébergement et technologies client. Vérifiez que votre hébergeur prend en charge les méthodes HTTP nécessaires et que le langage de programmation de votre client (comme JavaScript ou PHP) peut effectuer des requêtes HTTP et traiter des réponses JSON. 

Il est également conseillé de toujours mettre à jour la version de WordPress, car l'API REST est continuellement révisée et améliorée.

Tout mettre en place

L'API REST a transformé WordPress d'un CMS en une plateforme d'intégration. Avec une stratégie de pagination adaptée, vous pouvez extraire tous les articles d'un site, quelle que soit sa taille. Le choix de la méthode d'authentification dépend de votre cas d'utilisation : les mots de passe d'application pour la plupart des automatisations de serveur à serveur, OAuth ou JWT lorsque vous devez déléguer l'accès à des applications tierces. Les erreurs que vous rencontrerez seront principalement des 404, des 403 et des problèmes CORS, pour lesquels il existe des solutions prévisibles.

Si vous développez des intégrations pour plusieurs sites WordPress à la fois, la couche opérationnelle est tout aussi importante que la couche API. Un site hors service, ou un site sur lequel une mise à jour de plugin vient de perturber un point de terminaison personnalisé, perturbera silencieusement vos flux de travail REST API. C'est un aspect à prendre en compte à mesure que vous évoluez.

FAQ : API REST de WordPress

Qu'est-ce que l'API REST de WordPress ?

L'API WordPress REST est une interface qui permet à des applications externes d'interagir avec les données de WordPress à distance, permettant aux développeurs de récupérer, créer ou mettre à jour du contenu en dehors du tableau de bord de WordPress.

Comment obtenir tous les articles en utilisant l'API REST de WordPress ?

Utilisez le point de terminaison https://yourwebsite.com/wp-json/wp/v2/posts avec des paramètres facultatifs pour la pagination, le tri et le filtrage.

L'authentification est-elle nécessaire pour accéder aux articles avec l'API REST de WordPress ?

Non, l'authentification n'est pas nécessaire pour les messages accessibles au public. En revanche, pour les messages privés ou les données propres à l'utilisateur, l'authentification est nécessaire.