WP REST API: фильтр по категории 1 И категории 2

12

Я вмешивался в REST API, и я застрял с этим: Как я могу фильтровать сообщения в cat1 и cat2?

На данный момент ?categories[]=45&categories[]=50возвращается в категории ID 45 или 50 - как я могу получить сообщения в 45 и 50?

Заранее спасибо.

Джесси П Фрэнсис
источник
Вы нашли решение для этого?
Кори
@ Кори: Нет. Полагаю, что это невозможно, на данный момент (некоторые посты поддержки плагинов утверждали, что это так), я использовал API для приложения с Ionic, я загрузил их отдельно и вместо этого пересек. Оставьте это открытым, на случай, если мое обучение будет неполным. Читал где-нибудь, где плагин редактируется (совсем не рекомендуется), чтобы добиться этого.
Джесси Р Фрэнсис

Ответы:

6

Несколько категорий могут быть разделены запятой, как показано ниже

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

надеюсь это поможет

Маниш Юнг Тапа
источник
Запрос для поиска И, это даст вам ИЛИ.
Том Вудворд,
6

@ Посмотрите: WP-API / WP-API # 2990

Начиная с WP 4.7, filterбыл удален из WP-API.

Вам нужно использовать этот плагин: https://github.com/WP-API/rest-filter

Остин Пасси
источник
1
Альтернативный плагин github.com/bueltge/wp-rest-api-filter-items, который имеет тест на надежное обслуживание, включает.
Bueltge
@bueltge, Интересно. В настоящее время я использую плагин rest-api-filter-fields : github.com/svrooij/rest-api-filter-fields , который, похоже, делает то же самое.
Остин Пасси
1

Вы должны иметь доступ к нескольким категориям, используя следующие:

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

Надеюсь, это поможет!

ура

Джейми Халворсон
источник
Кажется, не работает! :)
Джесси Р Фрэнсис
1

Установите упомянутый плагин фильтра Остин ( https://github.com/WP-API/rest-filter ) и попробуйте ?filter[categories]=cat_one_slug%2Bcat_two_slug.

Я узнал, что %2Bэто кодовый эквивалент +символа.

Обычно мы используем +оператор AND, но, к сожалению, он преобразуется в пробел, поэтому используйте %2Bвместо него.

Луи С
источник
1

Кажется, нет способа сделать это в текущей версии API. Без использования плагина это может быть достигнуто с помощью пользовательской конечной точки или с помощью функции фильтра оставшихся запросов для определенного типа записей.

Вот грубая функция фильтра, которая добавляет параметр с именем cat_relation:

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

Таким образом, пример запроса URL будет:
http://example.com/wp-json/wp/v2/posts?categories=17,8&cat_relation=AND

Фрэнк
источник
0

Это то, что я сделал, работает отлично.

http://example.com/wp-json/wp/v2/articles/?_embed&categories=1,2,3,4&per_page=30
Thavaprakash Swaminathan
источник
-1

Для тех, кто использует Rest API v3, он работает для меня:

http://example.com/wp-json/wc/v3/products/?category=42,43
Вахид Сабет
источник
Это API REST WooCommerce для продуктов и категорий продуктов. Вопрос был о постах и ​​категориях постов с помощью WordPress REST API.
Джейкоб Питти