La API REST de WP ya no admite el parámetro filter, entonces ¿cómo obtengo posts en una taxonomía personalizada?
Por todo Internet veo consejos de personas que dicen que cuando quieres obtener posts en una taxonomía personalizada deberías usar el parámetro filter, por ejemplo:
https://example.com/wp-json/wp/v2/posts?filter[genre]=fiction
Este parece ser un parámetro muy útil. Pero en la v2 de la API REST de WP simplemente no funciona. Cuando creé un ticket en WP Trac para averiguar qué estaba pasando, @swissspidy respondió que "el parámetro filter se eliminó a propósito" pero que la documentación aún no se ha actualizado. El cambio se discute en el ticket 38378 de Trac.
De acuerdo, está bien, pero ¿podría alguien decirme cómo debo recuperar posts en una taxonomía personalizada ahora? Estoy escribiendo un plugin que depende de poder hacer esto.
Por ejemplo, si he creado una taxonomía personalizada no jerárquica instance
y le he dado el valor 1
para ciertos posts en un tipo de post personalizado, ¿cómo puedo recuperar todos los posts de ese tipo y con instance=1
?
Si no es posible a través de la API REST, ¿hay alguna manera de hacerlo a través de la API de WordPress.com en un sitio autohospedado con Jetpack habilitado?

Desde WordPress 4.7, el argumento filter
para cualquier endpoint de publicaciones fue eliminado. Pero si los necesitas, puedes agregarlos mediante un plugin. El Repositorio de la API de WP tiene un plugin 'Rest Filter' para este trabajo, pequeño y sencillo.

¡Gracias! Esto funcionó para mí. No estaba seguro si había desventajas al restaurar todo el argumento del filtro, así que en lugar de instalar el plugin, seguí su ejemplo para crear un filtro de consulta API REST para mi tipo de publicación personalizado que agrega $args['tax_query'] a los args. Esto me permite filtrar mis publicaciones personalizadas según etiquetas de taxonomía personalizada en la API. Pero para las personas que quieran restaurar el argumento del filtro, el plugin hará el trabajo.

@AndFinally ¿te importaría compartir cómo lograste tu filtro de taxonomía en los tipos de publicaciones personalizadas? ¡Sería de gran ayuda!

@bmiskie Simplemente instala el plugin y el parámetro del filtro debería funcionar como antes

Revisé el problema en GitHub sobre el parámetro de filtro (https://github.com/WP-API/WP-API/issues/2799) y apunta a un canal de Slack al que no pertenezco, por lo que no puedo ver las razones detrás de la decisión. ¿Alguien puede explicar por qué se eliminó?

La documentación de la API REST de WordPress tiene una sección sobre cómo registrar posts y taxonomías personalizadas con la API. Básicamente, añades 'show_in_rest' => true
cuando registras el tipo de post personalizado o la taxonomía personalizada.
register_taxonomy('instance', ['post'], [
<other args...>,
'show_in_rest' => true,
]);
Una vez hecho esto, puedes filtrar cualquier objeto para el que hayas registrado esa taxonomía ('post' en el ejemplo anterior) por esa taxonomía personalizada usando su nombre como parámetro en la cadena de consulta, por ejemplo:
https://example.com/wp-json/wp/v2/posts?instance=1
Ten en cuenta que el valor del parámetro de taxonomía ('1' en el ejemplo anterior) debe ser el id
del objeto de taxonomía, no su nombre o slug. Si solo conoces el slug y no el id, puedes buscar primero el id consultándolo por separado, ya que registrar tu taxonomía personalizada con la API también crea su propio endpoint personalizado:
https://example.com/wp-json/wp/v2/instance?slug=foo-bar
