Añadir o eliminar elementos en la WP API REST || Add or delete items from WP REST API
add_filter( 'rest_prepare_post', 'sololistas_apirest_remove_extra_data', 12, 3 );
function sololistas_apirest_remove_extra_data( $data, $post, $request ) {
// Solo modificamos el contexto 'view', para leer posts
if( 'view' !== $request['context'] || is_wp_error( $data ) ) {
return $data;
}
$response_data = $data->get_data();
// Eliminamos los campos que no necesitamos
unset( $response_data['date'] );
unset( $response_data['date_gmt'] );
unset( $response_data['guid'] );
unset( $response_data['modified'] );
unset( $response_data['modified_gmt'] );
unset( $response_data['type'] );
unset( $response_data['content'] );
unset( $response_data['excerpt'] );
unset( $response_data['author'] );
unset( $response_data['featured_media'] );
unset( $response_data['comment_status'] );
unset( $response_data['ping_status'] );
unset( $response_data['sticky'] );
unset( $response_data['format'] );
unset( $response_data['categories'] );
unset( $response_data['tags'] );
// Añadimos los que necesitemos (imágenes, metadata, etc..)
$thumbnail = get_the_post_thumbnail_url( $post, array( 30, 30 ) );
if( $thumbnail )
$response_data['thumbnail'] = $thumbnail;
$data->set_data( $response_data );
return $data;
}