Anteriormente habíamos visto Cómo usar la Rest API de WordPress, habíamos visto cómo leer las entradas de nuestros sitio web, sin embargo por defecto WordPress no muestra los datos de la tabla postmeta asociados con las entradas, en este artículo veremos cómo solucionar eso.
Generalidades
Para verificar si la API de WordPress funciona correctamente, podemos usar directamente alguna URL que haga referencia a la API y probarla directamente en el navegador, en la documentación oficial se explica la sintaxis que debe tener la url.
Por ejemplo para devolver una cantidad específica de entradas podemos usar la siguiente url:
http://tudominio.com/wp-json/wp/v2/posts?per_page=XX
En donde XX es la cantidad de entradas a devolver, por defecto son 10 entradas
Si queremos devolver una entrada específica:
http://tudominio.com/wp-json/wp/v2/posts/XX
En donde XX es el ID de la entrada.
Datos devueltos
Si usamos alguna de las urls anteriores, que devuelven una o varias entradas, veremos que no existe los Post Meta, tal como se muestra en la imagen adjunta.

Agregando los Post Meta a la REST API
Para agregar los post meta usaremos el siguiente código que puedes insertar como parte de un plugin o en el archivo functions.php de tu theme.
add_action( 'rest_api_init', 'crear_campo_adicional_api_posts' );
function crear_campo_adicional_api_posts() {
register_rest_field( 'post',
'post_meta_fields',
array(
'get_callback' => 'callback_leer_post_meta'
)
);
}
function callback_leer_post_meta( $object ) {
$post_id = $object['id'];
return get_post_meta( $post_id );
}
En el código anterior:
- Usamos el hook rest_api_init, que hace referencia a la función crear_campo_adicional_api_posts()
- Dentro de la función de referencia se usa la función de WordPress register_rest_field() que registra un nuevo campo para la API REST
- Como parámetros de la función tenemos: el nombre del campo post_meta_fields y la función callback callback_leer_post_meta()
- Finalmente en la función callback el parámetro de entrada es el objeto post actual por lo que podemos devolver los post meta de manera simple con la función get_post_meta()
Una vez aplicados estos cambios entonces veremos que ahora ya nos aparecen datos adicionales en el campo post_meta_fields que hemos creado.

Conclusión
Cuando usamos la REST API de WordPress, >no estamos limitados a los campos que nos devuelve por defecto WordPress y podemos añadir campos adicionales de acuerdo a nuestras necesidades, dentro de la función callback del código anterior, callback_leer_post_meta(), tenemos la posibilidad de devolver cualquier tipo de información relacionada con el post actual.
¿Aún con dudas?, en el siguiente video se explica los puntos tratados anteriormente.
Ok, como gravo más campos de postmeta?
Hola, puedes agregar campos post meta por programación, revisa: https://developer.wordpress.org/reference/functions/add_post_meta/ , o también: https://decodecms.com/como-usar-los-campos-personalizados-en-wordpress/