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.

Jesse P Francis
fuente
¿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

Manish Jung Thapa
fuente
La solicitud es para la búsqueda AND, esto le dará OR.
Tom Woodward
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

Jamie Halvorson
fuente
¡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.

Louis S
fuente
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

Franco
fuente
0

Esto es lo que hice, funciona bien.

http://example.com/wp-json/wp/v2/articles/?_embed&categories=1,2,3,4&per_page=30
Thavaprakash Swaminathan
fuente
-1

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

http://example.com/wp-json/wc/v3/products/?category=42,43
vahid sabet
fuente
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