API REST WP: filtro per categoria 1 E categoria 2


12

Ho interferito con l'API REST e sono bloccato con questo: come posso filtrare i post sia in cat1 che cat2?

Per ora, ?categories[]=45&categories[]=50ritorna nella categoria ID 45 O 50 - come posso ottenere post in 45 E 50?

Grazie in anticipo.


Hai trovato una soluzione per questo?
Corey,

@Corey: Nopes. Suppongo che al momento non sia possibile (visto alcuni altri post di supporto per i plugin che affermano che) stavo usando l'API per un'app con Ionic, li ho caricati separatamente e invece li ho incrociati. Lasciandolo aperto, nel caso in cui il mio apprendimento sia incompleto. Ho letto da qualche parte in cui il plugin viene modificato (per niente raccomandato) per ottenerlo.
Jesse P Francis,

Risposte:


6

Più categorie possono essere separate da una virgola come di seguito

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

spero che sia di aiuto


La richiesta è per la ricerca AND, questo ti darà OR.
Tom Woodward,


1

Dovresti essere in grado di accedere a più categorie utilizzando quanto segue:

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

Spero che aiuti!

Saluti


Non sembra funzionare! :)
Jesse P Francis,

1

Installa il plug-in filtro citato da Austin ( https://github.com/WP-API/rest-filter ) e prova ?filter[categories]=cat_one_slug%2Bcat_two_slug.

Ho scoperto che %2Bè l'equivalente in codice del +simbolo.

Normalmente useremmo +per l'operatore AND ma sfortunatamente viene convertito in uno spazio, quindi usa %2Binvece.


1

Non sembra esserci un modo per farlo nella versione corrente dell'API. Senza utilizzare un plug-in, è possibile ottenerlo con un endpoint personalizzato o utilizzando la funzione filtro query di riposo per il tipo di post specifico.

Ecco una funzione di filtro approssimativo che aggiunge un parametro chiamato cat_relation:

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

Quindi un URL di richiesta di esempio sarebbe:
http://example.com/wp-json/wp/v2/posts?categories=17,8&cat_relation=AND


0

Questo è quello che ho fatto, funziona benissimo.

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

-1

Per coloro che utilizzano Rest API v3, funziona per me:

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

Questa è l'API REST di WooCommerce per prodotti e categorie di prodotti. La domanda riguardava i post e le categorie di post con l'API REST di WordPress.
Jacob Peattie,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.