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
[pastacode lang=”php” message=”” highlight=”” provider=”manual”]
// 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 );
}
[/pastacode]
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)
1 Commentaire
Nous aprecions beaucoup ce que vous faites.
Nous tirons beaucoup des experiences que
vous parteagez avec nous.