Wordpress REST API V2: ¿cómo obtener una lista de todas las publicaciones?
Necesito obtener una lista de todas las publicaciones en una categoría específica. El número de publicaciones es superior a 100. No necesito el contenido de la publicación. Solo necesito el ID y el slug.
https://example.com/wp-json/wp/v2/posts/
devuelve solo 10 publicaciones con contenido.
¿Es posible obtener todas las publicaciones sin contenido?

De forma predeterminada y utilizando los hooks y API disponibles en el núcleo, no puedes tener más de 100 elementos por respuesta en la API REST de WordPress por razones de rendimiento. Para la segunda parte de la pregunta, puedes eliminar algunos campos de la respuesta usando el parámetro _fields
en tu solicitud como puedes ver en los ejemplos del manual:
// opción a: usando nombres de campos separados por comas.
https://example.com/wp-json/wp/v2/posts/?_fields=author,id,excerpt,title,link
// opción b: usando sintaxis de array.
https://example.com/wp-json//wp/v2/posts?_fields[]=author&_fields[]=id&_fields[]=excerpt&_fields[]=title&_fields[]=link
Y teóricamente, si eres el dueño del sitio web, podrías eliminar campos de la respuesta de la API usando el filtro dinámico rest_prepare_{$this->post_type}
para el/los tipo(s) de post(s) que deseas modificar.
if(!function_exists('wpse_382314_post_filter_data')) :
function wpse_382314_post_filter_data($response, $post) {
$response->data['post_title'] = '';
$response->data['post_content'] = '';
}
}
add_filter('rest_prepare_post', 'wpse_382314_post_filter_data', 10, 3);

En primer lugar, para obtener más de 10 publicaciones, todo lo que necesitas hacer es proporcionar el parámetro per_page
.
https://example.com/wp-json/wp/v2/posts/?per_page=100
Pero sí, a veces pueden haber miles de publicaciones, en ese caso por supuesto no es una buena idea obtener todo en una sola solicitud de la API REST. Y podemos combinar dos solicitudes usando ambos parámetros per_page
y page
,
https://example.com/wp-json/wp/v2/posts/?per_page=100&page=1
https://example.com/wp-json/wp/v2/posts/?per_page=100&page=2
o también puedes encontrar el ejemplo con PHP y la API HTTP de WordPress aquí: https://rudrastyh.com/wordpress/rest-api-get-posts.html#parameters
