WordPress REST API v2: получение списка сообщений по множественным тегам таксономии с использованием оператора AND - PullRequest
0 голосов
/ 16 января 2019

В настоящее время я работаю над приложением Angular, которое взаимодействует с Wordpress ' REST api . Основным компонентом этого приложения является фильтруемый индекс сообщений, где пользователи могут выбирать несколько тегов для поиска.

Мое намерение состоит в том, чтобы возвращаемые сообщения включали все выбранные теги, то есть, если выбраны теги 1 и 2, будут возвращаться только сообщения, имеющие ОБА теги 1 и 2.

Очевидно, это поддерживалось в предыдущих версиях с использованием параметра запроса фильтра, но с тех пор устарело .

Я пытался следовать документам, но они не ясно, возможно ли это, и то, как Wordpress обрабатывает фильтрацию по нескольким таксономиям, очень запутанно. Вот тест, который я провел:

https://<mysite>/wp-json/wp/v2/posts <- Заголовок X-WP-Total показывает 359 результатов. </p>

/wp-json/wp/v2/posts?tags=52 <- 253 результата, поэтому фильтрация происходит, как и ожидалось. </p>

/wp-json/wp/v2/posts?tags=1 <- 0 результатов, как и ожидалось, поскольку ни один пост не помечен как ID 1. </p>

/wp-json/wp/v2/posts?tags=1,52 <- 253 результатов, что означает, что мы перешли к условию «ИЛИ». В этом случае я хотел бы видеть 0 результатов, поскольку ни один пост не помечен как ID 1. </p>

/wp-json/wp/v2/posts?tags[0]=52&tags[1]=1 <- 253 результатов, поэтому фильтрация по-прежнему не применяется правильно </p>

/wp-json/wp/v2/posts?tags[]=52&tags[]=1 <- 253 результата, поэтому фильтрация по-прежнему не применяется правильно </p>

/wp-json/wp/v2/posts?tags=52&tags=1 <- 0 результатов, поэтому сначала я подумал, что это работает, но после изменения порядка моих тегов, например, <code>tags=1&tags=52, я видел 253 результатов, поэтому кажется, что WP только захватывает последние значения тегов.

/wp-json/wp/v2/posts?tags=52+1 <- Неверный запрос </p>

/wp-json/wp/v2/posts?tags=52%2B1 <- Неверный запрос </p>

Есть ли способ фильтрации сообщений по нескольким тегам с помощью REST API, или мне нужно будет создать собственную конечную точку?

Кроме того, я искал похожие вопросы. Этот вопрос о стеке идентичен тому, что я ищу, но принятый ответ не работает, так как они используют параметр запроса 'filter', который устарел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...