Я переплутався з API REST, і я застряг у цьому: Як я можу фільтрувати пости як у cat1, так і у cat2?
Наразі ?categories[]=45&categories[]=50
повертається в категорію ID 45 АБО 50 - як я можу отримувати повідомлення в 45 І 50?
Заздалегідь спасибі.
Я переплутався з API REST, і я застряг у цьому: Як я можу фільтрувати пости як у cat1, так і у cat2?
Наразі ?categories[]=45&categories[]=50
повертається в категорію ID 45 АБО 50 - як я можу отримувати повідомлення в 45 І 50?
Заздалегідь спасибі.
Відповіді:
Кілька категорій можна розділити комою, як нижче
http://example.com/wp-json/wp/v2/posts?categories=20,30
сподіваюся, що це допомагає
@Jesse див .: WP-API / WP-API # 2990
З WP 4.7 filter
було видалено з WP-API.
Вам потрібно використовувати цей плагін: https://github.com/WP-API/rest-filter
Ви повинні мати доступ до кількох категорій, використовуючи наступні:
http://YOURSITE.DEV/wp-json/wp/v2/posts?categories=45+50
Сподіваюся, що це допомагає!
Ура
Встановіть згаданий плагін для фільтра Austin ( https://github.com/WP-API/rest-filter ) та спробуйте ?filter[categories]=cat_one_slug%2Bcat_two_slug
.
Я дізнався, що %2B
це кодовий еквівалент +
символу.
Зазвичай ми використовуємо +
для оператора AND, але, на жаль, він перетворюється на простір, тому використовуйте %2B
замість цього.
Здається, у поточній версії 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
Це я і зробив, це прекрасно працює.
http://example.com/wp-json/wp/v2/articles/?_embed&categories=1,2,3,4&per_page=30
Для тих, хто використовує Rest API v3, він працює для мене:
http://example.com/wp-json/wc/v3/products/?category=42,43