L'API REST di WP non supporta più il parametro filter, come posso ottenere i post in una tassonomia personalizzata?
In giro per Internet vedo consigli di persone che dicono che quando si vogliono ottenere post in una tassonomia personalizzata si dovrebbe usare il parametro filter, per esempio:
https://example.com/wp-json/wp/v2/posts?filter[genre]=fiction
Questo sembra un parametro molto utile. Ma nella v2 dell'API REST di WP semplicemente non funziona. Quando ho creato un ticket su WP Trac per scoprire cosa stava succedendo, @swissspidy ha risposto che "il parametro filter è stato rimosso intenzionalmente" ma che la documentazione non è stata ancora aggiornata. La modifica è discussa nel ticket 38378 di Trac.
OK, giusto, ma qualcuno potrebbe dirmi come dovrei recuperare i post in una tassonomia personalizzata adesso? Sto scrivendo un plugin che dipende dalla possibilità di fare questo.
Per esempio, se ho creato una tassonomia personalizzata non gerarchica instance
e le ho dato il valore 1
per determinati post in un tipo di post personalizzato, come posso recuperare tutti i post di quel tipo e con instance=1
?
Se non è possibile tramite l'API REST, c'è un modo per farlo tramite l'API di WordPress.com su un sito self-hosted abilitato con Jetpack?

Da WordPress 4.7 l'argomento filter
per qualsiasi endpoint di post è stato rimosso. Ma se ne hai bisogno, puoi aggiungerli tramite un plugin. Il repository delle API WP ha un plugin 'Rest Filter' per questo compito, piccolo e semplice.

Grazie! Questo ha funzionato per me. Non ero sicuro se ci fossero svantaggi nel ripristinare completamente l'argomento del filtro, quindi invece di installare il plugin ho semplicemente seguito il suo esempio per creare un filtro di query API REST per il mio custom post type che aggiunge $args['tax_query'] agli argomenti. Questo mi permette di filtrare i miei post personalizzati in base ai tag della tassonomia personalizzata nell'API. Ma per le persone che vogliono ripristinare l'argomento del filtro, il plugin farà al caso loro.

@AndFinally ti dispiacerebbe postare come hai implementato il tuo filtro di tassonomia sui custom post type, sarebbe di grande aiuto!

@bmiskie Basta installare il plugin e il parametro filter dovrebbe funzionare come prima

Ho esaminato il problema su GitHub relativo al parametro filter (https://github.com/WP-API/WP-API/issues/2799) e rimanda a un canale Slack a cui non ho accesso, quindi non posso vedere le motivazioni alla base della decisione. Qualcuno può spiegare perché è stato rimosso?

La documentazione della REST API di WordPress ha una sezione dedicata alla registrazione di post personalizzati e tassonomie con l'API. In sostanza, bisogna aggiungere 'show_in_rest' => true
durante la registrazione del custom post type o della tassonomia personalizzata.
register_taxonomy('instance', ['post'], [
<altri argomenti...>,
'show_in_rest' => true,
]);
Una volta fatto questo, puoi filtrare qualsiasi oggetto per cui hai registrato quella tassonomia ('post' nell'esempio sopra) utilizzando il nome della tassonomia come parametro nella query string, ad esempio:
https://example.com/wp-json/wp/v2/posts?instance=1
Nota che il valore del parametro della tassonomia ('1' nell'esempio sopra) deve essere l'id
dell'oggetto tassonomia, non il suo nome o slug. Se conosci solo lo slug e non l'id, puoi prima cercare l'id interrogandolo separatamente, poiché registrare la tua tassonomia personalizzata con l'API crea anche il suo endpoint personalizzato:
https://example.com/wp-json/wp/v2/instance?slug=foo-bar
