J'essaie de modifier l'objet de réponse d'un appel WP REST API (v2) suivant ce guide: http://v2.wp-api.org/extending/modifying/
J'ai un type de message appelé Carrières et une taxonomie appelée Régions.
Les deux sont définis sur "show_in_rest" => true
J'utilise de jolis permaliens.
Quand j'obtiens mydomain/wp-json/wp/v2/careers
, les résultats sont tels qu'attendus.
Jusqu'ici tout va bien.
Je voulais retourner les termes de taxonomie dans la réponse, alors j'ai ajouté le code suivant à functions.php
add_action( 'rest_api_init', 'add_location_to_career_endpoint' );
function add_location_to_career_endpoint() {
register_rest_field( 'career',
'regions',
array(
'get_callback' => 'career_get_the_region',
'update_callback' => null,
'schema' => null,
)
);
}
function career_get_the_region( $object, $field_name, $request ) {
return get_the_terms( $object[ 'id' ], $taxonomies, null);
}
Cela retourne un tableau de termes contre les "régions" clés sur une instance de WordPress (ma version de développement).
Mon problème est que lorsque je passe en staging (configuration identique à dev), les termes de taxonomie ne sont pas renvoyés.
register_rest_field()
est en cours d'exécution parce que si j'ajoute du charabia dans l'attribut $ ('régions'), une erreur est générée. Cependant, la clé et le tableau "regions" ne sont pas renvoyés dans mes résultats.
Toute aide ici serait très appréciée.
Le problème était ma mise en scène et les développeurs utilisaient une différence de version mineure du plug-in API WP qui, en supposant qu'un changement destructeur ait été apporté.