@AeRB

Как сделать фильтрацию постов Вордпресс по таксономии через чекбоксы на AJAX?

Здравствуйте, обращаюсь сюда ибо столкнулся с нерешаемой для себя проблемой. На сайте интернет-магазина на Woocommerce, есть страница брендов, а на ней блок checkbox с тегами и блок с логотипами брендов
5e27a339a8ca4742737308.png
Стоит задача от заказчика
Например с помощью фильтров пользователь может выбрать отображение брендов, которые производят только диваны и стулья. Фильтр работает по принципу checkbox (можно выбрать несколько вариантов). Активные пункты фильтра - с чёрным фоном. Если не один фильтр не выбран, то отображается весь список брендов.
В заголовке жирным отмечено количество отображаемых в данный момент брендов на странице.
При смене фильтров цифра должна меняться.
Фильтрация и смена цифры в заголовке должны происходить без перезагрузки страницы.

Понимаю что должно работать через AJAX + перепробовал кучу плагинов, которые мне не помогли. Перерыл очень много информации и все мимо. Может есть добрые люди, которые мне помогут или хотя бы "поставят на путь истинный"?
  • Вопрос задан
  • 52 просмотра
Решения вопроса 2
anatoly_kulikov
@anatoly_kulikov
Помог ответ? Отметь решением!
Пожалуй, самый простой вариант - написать для REST специальный маршрут, куда передавать эти данные, в ответ получать json-ответ и с помощью js выводить результаты на страницу.
Ответ написан
OtshelnikFm
@OtshelnikFm Куратор тега WordPress
Мои работы: otshelnik-fm.ru
тоит задача от заказчика
- делегируй задачу специалисту https://freelance.habr.com/?utm_source=habr_qna&ut...
В таком вопросе ничего другого не посоветовать.

Ладно бы описал - "я делал то и то, вот код"...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Genri_Rus
Вот пример: https://rudrastyh.com/wordpress/ajax-post-filters.html
Для начала вам нужно связать товары с брендами
В админке, во вкладке товары есть подраздел атрибуты
Создаете в атрибутах Бренды и уже в брендах создаете названия ваших брендов
После этого вам нужно динамически вывести созданные на странице бренды в виде чекбоксов, указать им id в виде slug ваших брендов (для будущего ajax'а)
Т.е. например если у вас 5 брендов, то выводится только 5 чекбоксов, если 3 - то только три
Далее такой запрос (где вы хотите вывести эти данные)
$args = array(
	'posts_per_page' => -1
        'tax_query' => array(  
           'taxonomy' => тут название вашего созданного атрибута (можно посмотреть в url строке, там будет что-то типа taxonomy='brends'),
           'field' => 'slug',
           'terms' => $_POST['тут что хранится в id или name ваших чекбоксов']
       )
);
$brends = new WP_Query( $args );

А дальше уже цикл
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы