WP REST API: фільтр за категоріями 1 та категорією 2


12

Я переплутався з API REST, і я застряг у цьому: Як я можу фільтрувати пости як у cat1, так і у cat2?

Наразі ?categories[]=45&categories[]=50повертається в категорію ID 45 АБО 50 - як я можу отримувати повідомлення в 45 І 50?

Заздалегідь спасибі.


Ви знайшли рішення для цього?
Корі

@Corey: Ні. Здається, це неможливо, оскільки зараз (я бачив деякі інші повідомлення про підтримку плагінів, які стверджують, що) я використовував API для програми з Ionic, я завантажував їх окремо і перетинав. Залишаючи це відкритим, якщо моє навчання є неповним. Чи читав десь, де плагін редагується (зовсім не рекомендується), щоб його досягти.
Джессі П Франциск

Відповіді:


6

Кілька категорій можна розділити комою, як нижче

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

сподіваюся, що це допомагає


Запит призначений для пошуку І, це дасть вам АБО.
Том Вудвард

6

@Jesse див .: 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, Цікаво. Зараз я використовую плагін rest-api-filter- polja : github.com/svrooij/rest-api-filter-fields , який, схоже, робить те саме.
Остін Пассі


1

Встановіть згаданий плагін для фільтра Austin ( 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



-1

Для тих, хто використовує Rest API v3, він працює для мене:

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

Це API REST для WooCommerce для продуктів і категорій товарів. Питання стосувалося публікацій та категорій публікацій за допомогою API REST WordPress.
Якоб Пітті
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.