WP REST API: filtro por categoría 1 Y categoría 2


12

Me he estado entrometiendo con la API REST y estoy atascado con esto: ¿Cómo puedo filtrar publicaciones en cat1 y cat2?

Por ahora, ?categories[]=45&categories[]=50regresa en la categoría ID 45 o 50: ¿cómo puedo obtener publicaciones en 45 y 50?

Gracias por adelantado.


¿Has encontrado una solución para esto?
Corey

@Corey: Nopes. Supongo que no es posible, a partir de ahora (vi algunas otras publicaciones de soporte de complementos que afirman que) estaba usando API para una aplicación con Ionic, las cargué por separado y las intersecté. Dejándolo abierto, en caso de que mi aprendizaje sea incompleto. Leí en alguna parte donde se edita el complemento (no se recomienda en absoluto) para lograrlo.
Jesse P Francis

Respuestas:


6

Se pueden separar varias categorías por comas, como se muestra a continuación.

http://example.com/wp-json/wp/v2/posts?categories=20,30

espero que esto ayude


La solicitud es para la búsqueda AND, esto le dará OR.
Tom Woodward

6

@Jesse ver: WP-API / WP-API # 2990

Desde WP 4.7, filterse ha eliminado de WP-API.

Necesita usar este complemento: https://github.com/WP-API/rest-filter


1
Un complemento alternativo github.com/bueltge/wp-rest-api-filter-items que tienen una prueba para un mantenimiento sólido incluye.
bueltge

@bueltge, interesante. Actualmente uso el complemento rest-api-filter-fields : github.com/svrooij/rest-api-filter-fields , que parece estar haciendo lo mismo.
Austin Passy

1

Debería poder acceder a varias categorías utilizando lo siguiente:

http://YOURSITE.DEV/wp-json/wp/v2/posts?categories=45+50

¡Espero que ayude!

Salud


¡No parece funcionar! :)
Jesse P Francis

1

Instale el complemento de filtro que Austin mencionó ( https://github.com/WP-API/rest-filter ) e inténtelo ?filter[categories]=cat_one_slug%2Bcat_two_slug.

Descubrí que %2Bes el código equivalente del +símbolo.

Normalmente lo usaríamos +para el operador AND, pero desafortunadamente se convierte en un espacio, así que úselo %2Ben su lugar.


1

No parece haber una manera de hacer esto en la versión actual de la API. Sin usar un complemento, se puede lograr con un punto final personalizado o usando la función de filtro de consulta de descanso para el tipo de publicación específico.

Aquí hay una función de filtro aproximado que agrega un parámetro llamado cat_relation:

add_filter( 'rest_post_query', function( $args, $request ) {
    if($request['cat_relation'] == 'AND') {
        $args['category__and'] = $request['categories'];
    }
    return $args;
}, 10, 2);

Entonces, una URL de solicitud de ejemplo sería:
http://example.com/wp-json/wp/v2/posts?categories=17,8&cat_relation=AND



-1

Para aquellos que usan Rest API v3, funciona para mí:

http://example.com/wp-json/wc/v3/products/?category=42,43

Esta es la API REST de WooCommerce para productos y categorías de productos. La pregunta era sobre publicaciones y categorías de publicaciones con la API REST de WordPress.
Jacob Peattie
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.