WP REST API: filtruj według kategorii 1 ORAZ kategorii 2


12

Wtrącam się w interfejs API REST i utknąłem z tym: Jak mogę filtrować posty zarówno w cat1, jak i cat2?

Na razie ?categories[]=45&categories[]=50powraca w kategorii ID 45 LUB 50 - jak mogę uzyskać posty w 45 ORAZ 50?

Z góry dziękuję.


Czy znalazłeś rozwiązanie tego problemu?
Corey,

@Corey: Nopes. Chyba nie jest możliwe, na razie (widziałem kilka innych postów na temat obsługi wtyczek twierdzących, że) Używałem API dla aplikacji z Ionic, ładowałem je osobno i zamiast tego przecinałem. Pozostawiając to otwarte, na wypadek, gdyby moje uczenie się było niepełne. Czytałem gdzieś, gdzie edytowana jest wtyczka (wcale nie jest zalecana), aby ją osiągnąć.
Jesse P Francis

Odpowiedzi:


6

Wiele kategorii można oddzielić przecinkami, jak poniżej

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

mam nadzieję że to pomoże


Wniosek dotyczy wyszukiwania AND, to da ci LUB.
Tom Woodward,


1

Powinieneś być w stanie uzyskać dostęp do wielu kategorii za pomocą następujących czynności:

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

Mam nadzieję, że to pomaga!

Twoje zdrowie


Nie wydaje się działać! :)
Jesse P Francis

1

Zainstaluj wymienioną wtyczkę filtra Austin ( https://github.com/WP-API/rest-filter ) i spróbuj ?filter[categories]=cat_one_slug%2Bcat_two_slug.

Dowiedziałem się, że %2Bjest to kodowy odpowiednik tego +symbolu.

Zwykle +używalibyśmy operatora AND, ale niestety jest on konwertowany na spację, więc użyj %2Bzamiast tego.


1

Wydaje się, że nie ma sposobu, aby to zrobić w bieżącej wersji interfejsu API. Bez użycia wtyczki można to osiągnąć za pomocą niestandardowego punktu końcowego lub za pomocą funkcji filtru zapytań pozostałych dla określonego typu postu.

Oto funkcja filtra wstępnego, która dodaje parametr o nazwie cat_relation:

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

Przykładowy adres URL żądania to:
http://example.com/wp-json/wp/v2/posts?categories=17,8&cat_relation=AND



-1

Dla tych, którzy używają Rest API v3, to działa dla mnie:

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

To jest interfejs API REST WooCommerce dla produktów i kategorii produktów. Pytanie dotyczyło postów i kategorii postów z interfejsem API REST WordPress.
Jacob Peattie
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.