De la documentación:
De acuerdo con JetPack Documentos de la API JSON :
De forma predeterminada, todas las claves de metadatos están permitidas en la API, siempre que
No son claves protegidas. Cualquier clave de metadatos que comienza con _ es por
Protegido por defecto. Sin embargo, se puede acceder a las claves de metadatos protegidas
y editado por los usuarios con edit_post_meta (utilizado para editar y
viendo), las capacidades add_post_meta y delete_post_meta como
apropiado para cada operación. También hemos añadido un filtro.
rest_api_allowed_public_metadata que te permite específicamente
incluir en la lista blanca ciertas claves de metadatos a las que pueda acceder cualquier usuario, incluso si
esa clave está protegida.
por lo que el filtro rest_api_allowed_public_metadata
es lo que está buscando.
Desde el código fuente:
Si verifica el código fuente del JetPack, encontrará esta parte:
function is_metadata_public( $key ) {
if ( empty( $key ) )
return false;
// whitelist of post types that can be accessed
if ( in_array( $key, apply_filters( 'rest_api_allowed_public_metadata', array() ) ) )
return true;
return false;
}
en el archivo class.json-api-endpoints.php
.
También puede consultar la función allow_bbpress_public_metadata()
aquí para ver cómo implementar este filtro rest_api_allowed_public_metadata
.
Ejemplo:
Aquí hay un ejemplo similar para su caso:
/**
* Whitelist protected meta keys
*
* @param array $allowed_meta_keys
* @return array $allowed_meta_keys
*/
function custom_rest_api_allowed_public_metadata( $allowed_meta_keys )
{
// only run for REST API requests
if ( ! defined( 'REST_API_REQUEST' ) || ! REST_API_REQUEST )
return $allowed_meta_keys;
$allowed_meta_keys[] = '_ecmb_supporting_bands';
$allowed_meta_keys[] = '_ecmb_tickets_avail';
$allowed_meta_keys[] = '_ecmb_event_agelim';
return $allowed_meta_keys;
}
add_filter( 'rest_api_allowed_public_metadata', 'custom_rest_api_allowed_public_metadata' );
con la salida JSON similar a esta:
"metadata":[{"id":"196711","key":"_ecmb_event_agelim","value":"18"},
{"id":"196709","key":"_ecmb_supporting_bands","value":"The Rolling Stones"},
{"id":"196710","key":"_ecmb_tickets_avail","value":"5500"}]