API REST di WordPress V2: come ottenere l'elenco di tutti i post?
Ho bisogno di ottenere un elenco di tutti i post in una determinata categoria. Il numero di post supera i 100. Non mi serve il contenuto del post, mi servono solo l'ID e lo slug.
https://example.com/wp-json/wp/v2/posts/
restituisce solo 10 post con il contenuto.
È possibile ottenere tutti i post senza il contenuto?

Di default e utilizzando gli hook e le API disponibili nel core, non puoi avere più di 100 elementi per risposta sull'API REST di WordPress per motivi di performance. Per la seconda parte della domanda, puoi rimuovere alcuni campi dalla risposta utilizzando il parametro _fields
nella tua richiesta come puoi vedere negli esempi del manuale:
// opzione a: utilizzando nomi di campi separati da virgola.
https://example.com/wp-json/wp/v2/posts/?_fields=author,id,excerpt,title,link
// opzione b: utilizzando la sintassi ad array.
https://example.com/wp-json//wp/v2/posts?_fields[]=author&_fields[]=id&_fields[]=excerpt&_fields[]=title&_fields[]=link
E teoricamente, se sei il proprietario del sito, potresti rimuovere campi dalla risposta dell'API utilizzando il filtro dinamico rest_prepare_{$this->post_type}
per i tipi di post che vuoi modificare.
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);

Prima di tutto, per ottenere più di 10 post, tutto ciò che devi fare è fornire il parametro per_page
.
https://example.com/wp-json/wp/v2/posts/?per_page=100
Ma sì, a volte potrebbero esserci migliaia di post, in quel caso ovviamente non è una grande idea ottenere tutto in una singola richiesta REST API. Possiamo combinare due richieste utilizzando sia il parametro per_page
che 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
oppure puoi anche trovare l'esempio con PHP e WordPress HTTP API qui: https://rudrastyh.com/wordpress/rest-api-get-posts.html#parameters
