WordPress Rest API : Tout ce qu'il faut savoir (2025)

Dernière mise à jour le
Écrit par : image de l'auteur Kirsty Burgoine
Construction d'applications mobiles Illustration de style linéaire

WordPress 4.4 a intégré l'API REST de WordPress dans son noyau.

Dans cet article, je vais vous expliquer pourquoi ce développement est énorme pour WordPress (et pour les auteurs de thèmes et de plugins en général) et vous montrer comment l'utiliser pour simplifier le processus de communication entre WordPress et d'autres applications.

L'API WordPress Rest permet également aux sites web WordPress de se débarrasser de l'interface d'administration par défaut de WordPress pour offrir une expérience d'administration ou de contenu totalement personnalisée en utilisant une pile technologique diversifiée.

Calypso, l'application de bureau de WordPress, en est un bel exemple. Calypso est construit à partir d'une seule application Javascript qui utilise l'API REST de WordPress pour communiquer entre WordPress.com et le cœur de l'application.

L'API WordPress REST faisant désormais partie intégrante du noyau de WordPress, il est important que les développeurs comprennent bien son fonctionnement et les nouvelles possibilités qu'elle offre pour interagir avec WordPress.

Dans ce tutoriel sur l'API REST de WordPress, je vous présenterai les bases de l'API REST de WP et vous montrerai comment l'utiliser pour créer un widget (plugin) qui affiche les derniers articles des types d'articles personnalisés de la base de connaissances Heroic.

Icône de confiance

Nous testons et étudions rigoureusement chaque produit que nous recommandons sur HeroThemes. Notre processus d'évaluation. Nous pouvons également percevoir une commission si vous effectuez un achat par l'intermédiaire de nos liens.

Une introduction à l'API REST de WordPress

Avant de voir comment utiliser l'API REST de WordPress pour créer un widget (plugin), il convient de comprendre un peu mieux ce terme.

Que signifie donc API ?

API signifie Application Program Interface (interface de programme d'application).

En termes simples, il s'agit d'un moyen de communication entre deux applications différentes.

Un exemple courant d'API en action est le Tweet Deck que de nombreux sites web affichent. L'affichage de ce Tweet Deck est possible grâce à une API qui permet au site web d'extraire des données de Twitter et de les afficher.

Qu'en est-il de REST ?

REST est l'abréviation de REpresentational State Transfer.

REST est un style architectural basé sur HTML pour la création d'API. Une architecture RESTful utilise des requêtes HTTP pour afficher, lire, mettre à jour et supprimer des données entre deux sources.

Ainsi, lorsque nous parlons d'une API REST, il s'agit essentiellement d'une API qui utilise des méthodes HTML pour communiquer.

Et qu'en est-il de JSON ?

L'API WordPress REST a le même format que l'API WordPress JSON REST.

JSON (ou Javascript Object Notation) est un format d'échange de données minimal, basé sur du texte, qui est utilisé pour échanger des données de manière transparente entre différentes plateformes (même si ces plateformes utilisent des langages différents).

JSON est une alternative légère aux solutions basées sur XML, ce qui la rend idéale pour les applications mobiles dont la bande passante est limitée.

Pourquoi utiliser l'API REST de WordPress

Vous vous demandez peut-être ce que l'API REST de WordPress a de si exceptionnel et pourquoi vous devriez vous en préoccuper.

Eh bien ... l'API WordPress REST vous permet d'en faire plus avec WordPress.

Par exemple :

  1. Ecrire des applications dans n'importe quel langage que vous connaissez et les faire interagir avec un site WordPress (les 2 seules exigences étant que le langage de votre application doit utiliser des méthodes HTML et être capable d'interpréter JSON).
  2. Concevoir des expériences d'administration et de contenu totalement personnalisées
  3. Développer des applications à page unique sur WordPress

Et bien d'autres choses encore.

Il est presque impossible d'énumérer toutes les applications/interfaces/expériences potentielles qui peuvent être créées avec l'API REST. Le manuel de l'API REST de WordPress le dit à juste titre :

Notre imagination est la seule limite à ce qui peut être fait avec l'API REST de WordPress. En résumé, si vous souhaitez disposer d'un moyen structuré, extensible et simple d'entrer et de sortir des données de WordPress via HTTP, vous devriez probablement utiliser l'API REST.

Mais je sais que la mise en œuvre est toujours beaucoup plus difficile que la compréhension de la théorie.

Voyons donc un rapide tutoriel sur la façon dont vous pouvez utiliser l'API REST de WordPress pour créer un widget personnalisé (plugin).

Un tutoriel rapide sur l'utilisation de l'API REST de WordPress

Si vous possédez l'un de nos produits de base de connaissances, comme le thème du centre d'aideKnowAll ou votre propre thème avec le plugin Heroic Knowledge Base, vous disposerez d'un site avec une base de connaissances d'articles d'assistance. Il n'est pas nécessaire d'utiliser ces produits pour suivre les principes de ce tutoriel, mais sachez que vous devrez adapter le code à votre propre configuration.

Alors, prêt pour votre installation locale ?

Excellent !

Nous allons maintenant créer un autre site web sur un autre serveur.

Pourquoi donc créer ce deuxième site web ?

Nous le faisons parce que nous voulons mettre en œuvre l'API REST de WordPress pour communiquer avec ce deuxième site web, et comme vous le savez maintenant, l'API REST de WordPress permet d'établir des conversations.

Nous allons donc utiliser l'API REST de WordPress pour permettre aux deux sites web de communiquer entre eux et d'échanger des données.

Et l'objectif final du tutoriel est de :

Choisissez les derniers articles de la base de connaissances publiés sur le site web du centre d'aide et affichez-les dans un widget dans la barre latérale du nouveau site web.

Dans le cadre de cet article, le site web du centre d'assistance qui contient tous les articles de la base de connaissances sera appelé site web "local" et le nouveau site web sur lequel vous afficherez le widget sera le site web "externe".

À ce stade, je suppose que vous avez 1) votre site web "local" du centre d'assistance et 2) un nouveau site web "externe" installé sur un autre serveur.

À la fin du tutoriel, nous aurons réussi à afficher une liste d'articles de la base de connaissances du site web "local" sur le nouveau site web "externe" (via l'API REST de WordPress) à l'aide d'un widget personnalisé (plugin).

Sur ce, nous sommes prêts à commencer :

Étape 1 : Commencez par copier le code type suivant dans un nouveau fichier .php et enregistrez-le dans le dossier "plugins" de votre site web "externe".

Voir le code complet de ce tutoriel sur l'API REST de WordPress ici.

Ce code crée un widget très simple qui affiche un titre de votre choix.

En ajoutant le code en haut du modèle et en l'enregistrant dans le répertoire des plugins, nous l'avons créé en tant que plugin (plutôt que d'ajouter le code au fichier de fonctions du thème).

C'est une petite chose, mais créer un widget comme un plugin dans ce style vous permet de l'activer et de le désactiver, ainsi que de le réutiliser dans d'autres thèmes plus tard si vous le souhaitez, sans avoir besoin de copier-coller.

Une fois installé et activé, vous aurez un nouveau widget dans la zone Widgets du tableau de bord :

widget-admin

Étape 2 : Utiliser l'API REST de WordPress pour récupérer les articles récents de la base de connaissances

Comme vous ne souhaitez pas modifier ou supprimer quoi que ce soit dans ce développement, nous allons nous concentrer sur la fonction widget(). C'est là que le contenu du widget est envoyé au site web "externe".

Pour "obtenir" la liste des articles récents de la base de connaissances du site web "local", nous devons savoir un certain nombre de choses :

  • Le chemin de base de l'API (l'API à utiliser sur votre site, dans notre cas la dernière API de WP)
  • La route utilisée (l'API WP a plusieurs routes pour les différents ensembles de données et opérations disponibles)
  • Le point d'accès utilisé (quelle action doit être effectuée)
  • Paramètres (Les données associées à la demande)

Le chemin de base de l'API est toujours :

json/wp/v2/

Le chemin d'accès absolu à l'API est donc le suivant :

http://example.com/json/wp/v2/

(http://example.com est votre site web "local")

L'itinéraire utilisé est le suivant :

json/wp/v2/posts/

À propos des points de terminaison : Cette route a en fait trois points de terminaison qui sont différenciés par les méthodes HTTP. Ces points d'accès sont les suivants :

  • GET
  • PUT
  • DELETE

Dans cet exemple, vous choisirez le point de terminaison GET afin de pouvoir récupérer (ou "obtenir") une liste des derniers articles publiés sur le site web "local".

Ainsi, votre première ligne de code interagissant avec l'API REST sera :

$response = wp_remote_get( 'http://products-website.com/wp-json/wp/v2/posts/' );

Ensuite, vous devez vérifier si des erreurs sont renvoyées :

if( is_wp_error( $response ) ) {
    return;
}

Tout ce que fait ce code, c'est vérifier quelle réponse est renvoyée. Si la réponse renvoie des messages, il n'y a pas d'erreur.

La dernière partie de cette section est la suivante :

$posts = json_decode( wp_remote_retrieve_body( $response ) );

if( empty( $posts ) ) {
   return;
}

$response est une chaîne encodée en JSON avec les données de Post. Tout ce que vous faites ici, c'est de décoder ces données pour qu'elles puissent être affichées.

Encore une fois, ajoutez une vérification supplémentaire pour vous assurer que $posts n'est pas vide. Si c'est le cas, rien n'est renvoyé.

À ce stade, vous avez donc réussi à communiquer avec votre site web "local" à l'aide de l'API. Cette implémentation vous laisse avec une liste de messages à afficher.

L'étape suivante consiste à les afficher dans votre widget sur le site web "externe".

Étape 3 : Affichez les derniers messages sur le site web "externe" en ajoutant le code suivant :

if( !empty( $posts ) ) {
 
    echo '<ul>';
    foreach( $posts as $post ) {
        echo '<li><a href="' . $post->link. '">' . $post->title->rendered . '</a></li>';
    }
    echo '</ul>';
     
}

Le code de votre widget devrait ressembler à ceci :

Une fois l'étape ci-dessus réalisée, lorsque vous essayez maintenant de consulter votre site web "externe", vous verrez une liste de vos articles du site web "local" dans votre barre latérale.

widget

Tout cela est formidable.

Cependant, si vous vous souvenez bien, ce ne sont pas les bons messages car nous voulons seulement montrer les derniers articles de la base de connaissances.

Notre implémentation actuelle ne le fait pas parce que le plugin Knowledge Base utilise son propre type de post personnalisé. Et comme les types de posts personnalisés ne sont pas accessibles publiquement aux API par défaut, cela pose un problème. (Note : La dernière version de la base de connaissances est publiquement disponible pour l'API REST et la section suivante peut être ignorée).

Utiliser l'API REST avec des types d'articles personnalisés

Pour rendre les types d'articles personnalisés disponibles pour l'API REST, vous avez besoin d'une petite solution de contournement.

Ainsi, lorsque vous créez un type de message personnalisé, vous devez ajouter un nouveau paramètre aux paramètres d'enregistrement du type de message pour le rendre accessible au public :

'show_in_rest' = true,
'rest_base' = 'ht_kb',
'rest_controller_class' = 'WP_REST_Posts_Controller',

Mais comme dans notre cas, nous utilisons un plugin pour alimenter le type d'article de la base de connaissances, nous ne modifierons pas directement le fichier du plugin pour rendre les types d'articles personnalisés disponibles pour l'API REST. (Modifier directement un fichier de plugin n'est jamais une bonne idée !)

Nous allons plutôt ajouter le code suivant au fichier functions.php du thème enfant du site web "local" :

La dernière version de KnowAll et Heroic Knowledge Base ont déjà le support REST activé, ceci peut être désactivé avec le filtre ht_kb_show_in_rest, mais vous pouvez modifier le code ci-dessous pour votre propre type de post personnalisé.
/**
* Add rest support to an existing post type
*/
add_action( 'init', 'my_custom_post_type_rest_support', 25 );

function my_custom_post_type_rest_support() {
    global $wp_post_types;

    //set this to the name of your post type!
    $post_type_name = 'ht_kb';
    if( isset( $wp_post_types[ $post_type_name ] ) ) {
        $wp_post_types[$post_type_name]->show_in_rest = true;
        $wp_post_types[$post_type_name]->rest_base = $post_type_name;
        $wp_post_types[$post_type_name]->rest_controller_class = 'WP_REST_Posts_Controller';
    }
}

Désormais, le type d'article personnalisé "ht_kb" est accessible au public via l'API REST de WP.

Après avoir rendu le type d'article personnalisé disponible à l'API REST de WordPress, nous devons maintenant corriger notre widget pour qu'il affiche les articles avec ce type d'article. Pour cela, nous allons revenir au code $response de l'étape 2 et le mettre à jour en :

$response = wp_remote_get( 'http://example.com/wp-json/wp/v2/ht_kb/' );

En fait, nous remplaçons /posts/ par /ht_kb/ dans la route API, car 'ht_kb' est le nom du type d'article personnalisé du plugin.

Une fois que vous aurez mis à jour votre widget et prévisualisé le site web "externe", vous devriez maintenant voir les derniers articles de la base de connaissances.

widget-kb-content

Dernières réflexions

Comme nous l'avons vu, en utilisant quelques simples extraits de PHP et de HTML, vous pouvez créer de nouvelles fonctions, des widgets et des plugins.

Vous pouvez modifier le plugin que nous venons de créer pour créer une boîte de recherche qui utilise l'API REST de WP pour rechercher les articles de la base de connaissances et renvoyer les résultats dans le widget.

Vous pouvez également utiliser l'authentification pour contrôler qui voit les résultats (utile si vous avez créé un contenu restreint).

Il y a tant de choses à essayer ! Il suffit d'adopter les bonnes règles de base pour que tout aille pour le mieux.

Pour en savoir plus

Il y a beaucoup de contenu obsolète autour de l'API REST de WordPress, alors assurez-vous de ne lire que ce qui a été mis à jour. J'ai mis des liens vers des ressources utiles tout au long de l'article, mais j'en liste également quelques-unes ici.

Lisez-les donc et découvrez les différentes façons créatives d'utiliser l'API REST.

Si vous avez des questions sur la mise en œuvre de l'API REST de WordPress, posez-les dans les commentaires ci-dessous !

Laisser un commentaire ?