Поиск поста по категориям WordPress WP-API

Я хочу искать посты по категориям в WP-API.

Я знаю, что могу искать сообщения по категориям атрибутов или фильтровать [кошка].

Но сообщения содержат более одной категории.

Я пытался искать вот так:

{host}/wp-json/wp/v2/posts?categories=69&filter[cat]=[228,246,237]&per_page=50

или же

{host}/wp-json/wp/v2/posts?categories=69&filter[cat]=228&filter[cat]=246&filter[cat]=237&per_page=50

или же

{host}/wp-json/wp/v2/posts?categories=69&categories=246&categories=237&categories=228

Это не сработало для меня. Это заставило поиск искать последний атрибут.

Есть идеи?

Это структура ответа Json

{
"id": 9333,
"date": "2016-08-02T14:17:01",
"date_gmt": "2016-08-02T12:17:01",
"guid": {
"rendered": "{post}/?p=9333"},
"modified": "2016-08-03T08:50:35",
"modified_gmt": "2016-08-03T06:50:35",
"slug": "{post}",
"type": "post",
"link": "{host}/{post}/",
"title": {
"rendered": "{post}"},
"content": {
"rendered": "{post}"},
"excerpt": {
"rendered": "{post}"},
"author": 3,
"featured_media": 0,
"comment_status": "closed",
"ping_status": "closed",
"sticky": false,
"format": "standard",
"categories": [
228,
237,
207,
217,
246,
231,
69,
221,
270,
244
],
"tags": [],
"_links": []
}

Спасибо!

0

Решение

Если вы хотите получать сообщения из нескольких категорий, есть несколько решений, в зависимости от ваших потребностей.

В случае, если вы хотите получать сообщения из категории с ID = 1 ИЛИ категории с ID = 2, используйте следующий URL:

http://localhost/lifelog/wp-json/wp/v2/posts?filter[cat]=1,2

или же:

http://localhost/lifelog/wp-json/wp/v2/posts?categories=1,2

Для случая, когда вы хотите получать сообщения из категории с ID = 1 И категории с ID = 2, вы можете использовать:

http://localhost/lifelog/wp-json/wp/v2/posts?filter[category__and][]=1&filter[category__and][]=2

НО — некоторые значения фильтра, используемые в массиве фильтров, требуют аутентифицированного пользователя с edit_posts привилегии.

К счастью, есть более простое решение — WordPress поддерживает такие ссылки, как:

http://example.com/category/test1+test2/

Под вышеупомянутым URL вы получите список сообщений, которые относятся к категориям test1 И test2. И в REST API вы можете добиться того же поведения с помощью следующего URL:

http://localhost/lifelog/wp-json/wp/v2/posts?filter[category_name]=test1%2Btest2

Пожалуйста, помните, что вы должны заменить + войти в % 2B.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]