Tout savoir sur WordPress

Tuto WP API Rest : Créer ses propres routes API

L’API WordPress est très puissante et livrée clés en main. Il est cependant possible d’ajouter vos propres routes et créer vos propres fonctions spécifiques pour palier à tous vos besoins.

1. Créer une nouvelle route

Tout d’abord, on crée une route, avec éventuellement des paramètres complémentaires, dans ce cas on crée une route author avec la possibilité de mettre un ID (sous forme de regex) : (?P<id>\d+) on attend là un nombre de 1 ou plusieurs caractères

add_action( 'rest_api_init', function () {
    register_rest_route( 'myplugin/v1', '/author/(?P<id>\d+)', array(
        'methods' => 'GET',
        'callback' => 'my_awesome_func',
    ) );
} );

La route invoquée appellera en GET (on récupère seulement des infos. Utiliser PUT pour écrire et DELETE pour effacer) et appellera la fonction My_awesome_function

2. Créer sa fonction spécifique

la fonction my_awesome_function vous permettra, exactement comme une WP Query (voir mon article sur les requêtes personnalisées) . Dans cet exemple on fait simplement un get_post en fournissant l’identifiant de l’auteur récupéré dans l’URL fournie par la requête API, et on retourne les résultats. L’api s’occupe de la mise en page en JSON. Et voilà !

function my_awesome_func( $data ) {
    $posts = get_posts( array(
        'author' => $data['id'],
    ) );

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

    return $posts[0]->post_title;
}

Vous souhaitez aller plus loin ? Découvrez la création de routes sur la documentation officielle.

Cet article a été mis à jour il y a 536 jours - Il n'est peut être plus à jour !

Article écrit par Maxime BJ

Développeur, bloggeur et formateur Web spécialisé WordPress. 31 ans. Grenoblois. Co-fondateur de WPChef, l’organisme de formation WordPress.

Organisateur de WPInAlps, le meetup WordPress Grenoblois. Vous pouvez me rencontrer lors d’événements tels que WordCamp Paris et Europe. Traducteur Français de l’extension Advanced Custom Fields. Également développeur d’applications web avec MeteorJs. Je m’occupe un site pour apprendre l’informatique aux débutants gratuitement.

J’aime les jeux vidéo, la rando, la bouffe bien grasse et les voyages.

0 Commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

860cb2e15e1a8079a8cbc865b69b818a}}}}}}}}}}