Tout savoir sur WordPress

Tuto WP API Rest : Envoyer les custom posts fields avec l’article via l’API

Par défaut, l’API REST WordPress ne renvoie que les éléments par défaut de l’article : titre, auteur, date, contenu… Les champs additionnels ne sont pas renvoyés par défaut, mais vous pourrez changer ça à l’aide d’un hook

Ce hook vous permet de choisir les champs personnalisés (custom fields) à envoyer avec les réponses de l’API

// Add custom fields to json response
function slug_register_featured() {
    register_api_field( 'post',
        'featured',
        array(
            'get_callback'    => 'get_meta_to_response',
            'update_callback' => null,
            'schema'          => null,
        )
    );
}
add_action( 'rest_api_init', 'slug_register_featured' );

function get_meta_to_response( $object, $field_name, $request ) {
    return get_post_meta( $object[ 'id' ], $field_name, true );
}

La première fonction déclare un nouveau champ pour l’API, et la deuxième, appelée via le array callback, permet d’aller chercher la donnée que vous souhaitez. Ca peut être un custom field mais également autre chose (un article croisé par exemple). Bref, vous êtes très libre et vous pouvez donc envoyer des réponses plus complètes.

Ca marche avec ACF ?

Oui ! Puisque ACF stocke simplement les valeurs dans des custom fields natifs, du coup aucun problème de ce côté là, ça marchera de la même manière ! Super !

Il y a aussi un plugin qui permet d’exposer par défaut tous les champs ACF dans la réponse : https://wordpress.org/plugins/acf-to-wp-api/ (merci à @semoskw pour l’info)

Cet article a été mis à jour il y a 451 jours

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 *

016f291283c1cbd2a509d2d4eb592d57%%%%%%%%%%%%%%%%