WordPress est l’un des systèmes de gestion de contenu (CMS) les plus populaires au monde. Il aide les petites et grandes entreprises à mettre en place et à créer diverses formes de contenu de site web. Mais WordPress a évolué et ne se contente plus de prendre en charge le contenu traditionnel des blogs, et ce en grande partie grâce à l’API REST de WordPress.

L’API REST de WordPress relie WordPress à d’autres applications web externes. Elle facilite une communication plus accessible et vous aide à créer des expériences web immersives et attrayantes qui s’intègrent de manière transparente à la plateforme CMS.

Cette API utilise des points de terminaison pour récupérer et manipuler le contenu de WordPress sous forme d’objets JSON. Grâce à ces points de terminaison, vous pouvez créer, lire, mettre à jour et supprimer (CRUD) le contenu de WordPress à distance sans vous connecter au compte d’administration de WordPress, ce qui apporte de la flexibilité et permet d’étendre les fonctionnalités de WordPress au-delà de ses fonctions de base.

Ce guide explore ce qu’est l’API REST de WordPress, ses avantages, comment elle étend les capacités de base de WordPress, et comment créer, enregistrer et accéder à un point de terminaison personnalisé.

Pré-requis

Pour suivre ce tutoriel, vous avez besoin de :

Comprendre l’API REST de WordPress

L’API REST de WordPress est une interface puissante qui vous permet d’interagir avec les sites WordPress de manière programmatique en utilisant des méthodes HTTP standard.

Ses capacités par défaut incluent l’accès et la manipulation de différents types de données WordPress, tels que les articles, les pages, les commentaires, les utilisateurs et les taxonomies, dans un format JSON structuré. Vous pouvez également effectuer des actions CRUD à distance sur le contenu.

Cependant, la véritable valeur de l’API REST de WordPress réside dans son extensibilité grâce à des points de terminaison personnalisés. Vous pouvez créer des points de terminaison personnalisés pour adapter l’API à des besoins spécifiques, tels que l’intégration de fonctionnalités supplémentaires, de services tiers ou de structures de données uniques. Cette flexibilité vous permet de créer des applications hautement personnalisées et riches en fonctionnalités à partir de WordPress.

Comment planifier votre point de terminaison, d’API personnalisé

La planification de la structure et de l’objectif de vos points de terminaison personnalisés est essentielle pour un développement efficace de l’API. Les points de terminaison personnalisés adaptés à vos besoins spécifiques doivent être soigneusement étudiés pour garantir une fonctionnalité optimale. La planification stratégique facilite l’évolutivité et l’adaptabilité, et permet aux points de terminaison de s’adapter à l’évolution des besoins de l’entreprise.

La planification de vos points de terminaison d’API personnalisés avant la mise en œuvre vous aide :

  • Clarté de la fonction du point de terminaison – La planification de votre point de terminaison clarifie la fonction spécifique du point de terminaison, ses types de données attendus et son utilisation.
  • Cohérence et efficacité du développement – La planification garantit également la cohérence de l’utilisation des points de terminaison, des types de réponse et du formatage, ce qui améliore l’interaction avec l’API. En outre, le fait de connaitre l’objectif de l’API permet une mise en œuvre correcte, ce qui réduit le temps de développement et le risque d’erreurs.
  • Évolutivité et adaptabilité – Définir les besoins de votre point de terminaison permet de l’adapter à l’évolution des besoins et des exigences de l’entreprise sans qu’il soit nécessaire de procéder à une refonte complète.
  • Sécurité – Une bonne planification des points de terminaison permet de déterminer la nécessité d’une authentification pour accéder aux données ou les manipuler. L’obtention de contenu via l’API n’implique parfois aucune authentification de l’utilisateur. Néanmoins, pour les contenus contenant des données sensibles ou non autorisées, il est essentiel de définir des exigences de sécurité et de mettre en œuvre des mesures telles que l’autorisation et les contrôles d’accès afin de garantir la sécurité des données.

Les sections pratiques qui suivent expliquent comment vous pouvez créer un point de terminaison personnalisé disponible à l’adresse site-domain/wp-json/custom/v2/testimonials pour récupérer des témoignages de clients à partir d’un site de base de données WordPress.

Après avoir envoyé une requête, le point de terminaison renvoie un objet JSON contenant des informations sur les témoignages de votre site WordPress, comme défini dans votre fonction de rappel.

Nous allons nous plonger dans l’action !

Créez un type de publication personnalisé pour votre point de terminaison

Tout d’abord, vous devez créer un type de publication personnalisé.

  1. Naviguez vers l’éditeur de fichiers de thème depuis la section Apparence de votre tableau de bord d’administration WordPress.
  2. Ouvrez le fichier function.php de votre thème et ajoutez le code suivant :
    function create_custom_testimonial_type() {
        register_post_type('testimonials', array(
            'labels' => array(
                'name' => 'Testimonials',
                'singular_name' => 'Testimonial',
            ),
            'public' => true,
            'has_archive' => true,
            'show_in_rest' => true, // This enables REST API support
        ));
    }
    add_action('init', 'create_custom_testimonial_type');

    Ce code crée un type de publication, personnalisé « testimonials » et active le support de l’API REST de WordPress ('show_in_rest' => true). Le code add_action hook appelle la fonction de rappel create_testimonial_type et la lance pendant l’exécution.

    Vous pouvez personnaliser les libellés et les arguments en les supprimant ou en les ajoutant pour répondre à vos besoins.

  3. Cliquez sur Mettre à jour le fichier pour enregistrer vos modifications.
    Création d'un type de publication <code>custom_testimonial</code>.
    Création d’un type de publication custom_testimonial.

    Actualisez le tableau de bord pour voir l’option Testimonials ajoutée à votre tableau de bord WordPress.

    Le type de publication testimonial nouvellement créé.
    Le type de publication testimonial nouvellement créé.

  4. Créez un nouvel article contenant des témoignages en cliquant sur Testimonials > Ajouter. Vous pouvez utiliser le bloc Pullquote. Selon la manière dont vous présentez votre témoignage, vous pouvez également utiliser d’autres blocs.

Voici deux exemples de témoignages créés à l’aide des blocs Pullquote :

Témoignages nouvellement créés.
Témoignages nouvellement créés.

Enregistrer un point de terminaison personnalisé dans WordPress

L’enregistrement d’un point de terminaison personnalisé le rend disponible à la consommation via l’API REST. Cela implique d’utiliser la fonction register_rest_route, de l’appeler sur le hook rest_api_init et de fournir une méthode de rappel qui sera invoquée lorsque la route sera appelée.

Collez le code suivant dans le fichier function.php de votre thème :

add_action( 'rest_api_init', 'register_testimonial_rest_route' );
 
function register_testimonial_rest_route(){
	register_rest_route(
		'custom/v2',
		'/testimonials',
		array(
			'methods' => 'GET',
			'callback' => 'get_testimonials',
		)
	);
}

Cette fonction register_rest_route() prend en compte trois paramètres :

  • Route Namespace ($route_namespace) – Il s’agit de la première partie du segment de l’URL, qui doit suivre le modèle vendeur/numéro de version. Le vendeur représente le fournisseur ou le thème. L’espace de noms permet de différencier les points de terminaison et aide les clients à contacter l’assistance pour votre point de terminaison personnalisé. Ce tutoriel utilise l’espace de noms custom/v2.
  • L’URL de base ($route) – Elle suit l’espace de noms et est une URL associée à une méthode. Vous pouvez enregistrer plus d’un point de terminaison pour votre itinéraire. Pour ce tutoriel, vous utilisez la route /testimonials, qui indique au point de terminaison de récupérer les témoignages.
  • Les options du point de terminaison ($args) – Il s’agit d’un tableau contenant la méthode HTTP utilisée lors de l’appel de la route et la fonction de rappel que le point de terminaison invoquera lorsque vous enverrez une requête. Nous verrons cette fonction de rappel dans la section suivante.

Enfin, notez l’adresse de votre point d’accès. Le format d’un point de terminaison est site-address/wp-json/namespace/route. Ainsi, dans cet exemple, le point de terminaison sera https://www.staging.kidspartysanctuary.co.uk/wp-json/custom/v2/testimonials.

Implémenter la fonction de rappel pour le point de terminaison

Après avoir créé le type de publication personnalisé et enregistré votre point de terminaison personnalisé, l’étape suivante consiste à écrire votre fonction de rappel. Cette fonction de rappel est invoquée à chaque fois que l’on accède au point de terminaison.

  1. Déclarez votre fonction de rappel get_testimonials à l’aide du code ci-dessous :
    function get_testimonials(){
    
    }
  2. Initialisez un tableau testimonial vide pour stocker les données de témoignages WordPress récupérées :
    $testimonials = array();
  3. Configurez un tableau nommé $args avec les paramètres de la requête pour un appel WP_Query.
    $args = array(
        'post_type' => 'testimonials', //specifies you want to query the custom post type   
    'testimonial',
        'nopaging' => true,  // no pagination, but retrieve all testimonials at once
    ),
  4. Créez une instance de la classe WP_Query qui prend en charge le tableau $args, effectue une requête basée sur les paramètres spécifiés et stocke les résultats de la requête WordPress dans la variable $query.
    $query = new WP_Query($args)
  5. Écrivez une instruction conditionnelle pour vérifier s’il y a des articles de témoignages. Ensuite, créez une boucle while pour itérer à travers les articles et retourner les articles de témoignages title et content.
    if ( $query->have_posts() ) {
            while ( $query->have_posts() ) {
                $query->the_post();
                $testimonial_data = array( /*an array that stores the title 
    and content of every post*/
                'title' => get_the_title(),
                    'content' => get_the_content(),
                    // Add other fields as needed
                );
                $testimonials[] = $testimonial_data; 
            }
            wp_reset_postdata(); /* restores $post 
    global to the current post to avoid any conflicts in subsequent queries*/
        }
        return rest_ensure_response( $testimonials ); /*ensures response is 
    correctly set as a response object for consistency*/

    Voici le code complet :

    function get_testimonials() {
    $testimonials = array();
    $args = array(
        'post_type' => 'testimonials',
        'nopaging' => true,
    );
    $query = new WP_Query( $args );
    if ( $query->have_posts() ) {
        while ( $query->have_posts() ) {
            $query->the_post();
            $testimonial_data = array(
                'title' => get_the_title(),
                'content' => get_the_content(),
                // Add other fields as needed
            );
            $testimonials[] = $testimonial_data;
        }
        wp_reset_postdata();
    }
    return rest_ensure_response( $testimonials );
    }
  6. Testez votre point d’accès en utilisant Postman pour vérifier que vous pouvez accéder à vos données.
    Postman montre une réponse positive.
    Postman montre une réponse positive.

    Vous pouvez également effectuer ce test à l’aide d’un navigateur. Accédez au point de terminaison en saisissant l’URL site-domain/wp-json/custom/v2/testimonials dans la barre d’adresse de votre navigateur.

    Le résultat du navigateur qui apparait lorsque l'on accède au point de terminaison.
    Le résultat du navigateur qui apparait lorsque l’on accède au point de terminaison.

Résumé

Ce tutoriel a expliqué comment mettre en œuvre un point de terminaison personnalisé de l’API WordPress. Pour permettre aux utilisateurs d’accéder et d’interagir avec les données de votre base de données WordPress, il vous suffit d’enregistrer la route qui implémente une fonction de rappel.

Vous voulez savoir comment maximiser WordPress pour votre entreprise ? Kinsta propose de nombreuses options avancées dans le cadre de son service d’hébergement WordPress infogéré afin de répondre aux besoins uniques de votre entreprise. Une option notable est l’extension Kinsta MU (must-use), qui gère et implémente la mise en cache pour votre site afin de réduire la latence et d’améliorer les performances. Essayez Kinsta dès aujourd’hui !

Que pensez-vous du développement de points de terminaison d’API WordPress personnalisés ? En avez-vous déjà conçu ? Nous serions ravis de connaitre vos expériences. Partagez-les dans la section des commentaires ci-dessous.

Jeremy Holcombe Kinsta

Rédacteur en chef du contenu et du marketing chez Kinsta, développeur web WordPress et rédacteur de contenu. En dehors de WordPress, j'aime la plage, le golf et le cinéma. J'ai aussi des problèmes avec les personnes de grande taille ;).