Intereting Posts
Плагин для загрузки темы, если мобильная и конкретная страница ошибка foreach на false boolean из get_terms Как загрузить изображение с лицевой панели и сохранить в медиа-библиотеке? Существующие плагины электронной торговли с пользовательскими типами сообщений Показать ссылки тегов на странице архива? Где добавить файл css, который должен использовать мои формы? Возвращать единый таксономический термин вне цикла Gravity Forms, как связать форму с сообщением pro signup Как показать пользовательский счет типа сообщения на странице администрирования пользователей Включая пользовательские поля в поиске? Как добавить страницы для подачи? Meta_Query отказывается возвращать результаты Заказы отправляются на неправильный адрес электронной почты администратора в WooCommerce Нужна помощь с customalert, что он будет читать на обычной странице, но не в WordPress Отображать только текущий номер страницы и другую пронумерованную страницу в разбивке на страницы

Запрос сообщения, включающего две таксономии с использованием API JSON Rest

Я использую плагин JSON Rest API ( https://wordpress.org/plugins/json-rest-api/ ). У меня есть две пользовательские таксономии с одним термином каждый:

  1. Внутренние части
    • глаз
  2. Симптомы Категории (Человек)
    • Сломанный костяной одиночный перелом

Мне нужно показать сообщения, соответствующие каждой из этих категорий и терминов. Я пробовал следующее:

http://mcsc.hawkhorne.com/wp-json/posts?type=male-conditions&filter[taxonomy]=inner-part-categories&filter[term]=Eye&filter[taxonomy]=symptoms-categories-man&filter[term]=Broken%20Bone%20Single%20Fracture 

Но этот метод возвращает только сообщения в соответствии с последней заявленной таксономией и термином. Например, если я переключу налог и термин как таковой:

 http://mcsc.hawkhorne.com/wp-json/posts?type=male-conditions&filter[taxonomy]=symptoms-categories-man&filter[term]=Broken%20Bone%20Single%20Fracture&filter[taxonomy]=inner-part-categories&filter[term]=Eye 

Затем он будет показывать только сообщения по налоговым внутренним категориям и терминам Eye и игнорировать первый налоговый и долгосрочный запрос.

Я искал часы и нашел решение.

Я также думал, может быть, массив данных может быть передан в запрос данных ajax, как это делается в WP Query. У меня есть следующий код:

data: {filter: {'posts_per_page': -1, 'post_status': 'publish', 'orderby': 'title', 'order': 'ASC'}},

Спасибо за вашу помощь.

Во-первых, ваша проблема с последним типом сообщения и / или термином, переписывающим все предыдущие, заключается в том, что «фильтр» представляет собой двумерный массив. Поэтому «таксономия» (ключ в этом случае) может иметь только одно значение. Если это кажется странным, прочитайте эту полезную страницу в github плагина, которая мне очень помогла ( прочитайте это )

tldr; долгосрочные списки и многомерные массивы возможны с помощью WP JSON API! вы бы просто сделали type[]=post_type1&type[]=post_type2 для пользовательских типов сообщений! Попробуй.

Итак, имея в виду … вы все еще не можете выполнять несколько запросов пользовательской таксономии в настоящее время (насколько я могу судить). Баммер, я знаю. Мое решение? Гнездо вашего второго запроса в обратном вызове успеха первого, затем объедините массивы и отсортируйте окончательный массив.

 $http.get( $scope.api + '/posts?type=eats&filter[taxonomy]=eats-categories&filter[term]=eats-video' ). success(function(data, status, headers, config){ $scope.posts = data; $http.get( $scope.api + '/posts?type=shreds&filter[taxonomy]=shreds-categories&filter[term]=shreds-video' ). success(function(data_2, status, headers, config){ $scope.posts = $scope.posts.concat( data_2 ); }). error(function(data_2, status, headers, config){ alert( 'video 2 widget query error' ); }); }). error(function(data, status, headers, config){ alert( 'video widget query error' ); }); 

Обратите внимание: этот код специфичен для моих запросов, но я его протестировал, и он сработал. Я еще не написал функцию сортировки, но я либо буду сортировать по полю даты WordPress значений массива, либо использовать угловой фильтр, чтобы сделать что-то интересное.

Изменить: сделано несколько изменений для ясности.