Комбинированные параметры фильтрации WordPress
Еврика !!!
Долго искал и вот нашел решение одной из основных проблем, которые стоят перед разработчиками WordPress. Обычно все считают, что CMS WordPress изначально, стандартная сборка толком ничего не может и надо писать отдельные плагины, но сегодня хочу с этим поспорить.
Чтобы было понятнее расскажу на поставленной задаче, которая стоит передо мной сейчас.
Необходимо создать сайт с объявлениями по недвижимости. Взял из интернета тему которая была предназначена для сайта по недвижимости, но она умела фильтровать данные только по одному критерию (цене, количеству спален, метражу … ). Все эти критерии это отдельные категории в WordPress. Получается передо мной задача сделать нестандартный запрос, который будет выводить данные, которые состоят в нескольких категориях.
Стандартно для вывода из одной категории в WordPress достаточно сделать запрос через URL
https://e-romanova.com/?cat=16
В моем случае необходимо написать небольшой код в файле, содержащем цикл вывода данных. У меня этот файл index.php. Замените код:
1 |
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> |
Новым кодом включающим фильтрацию:
1 2 3 |
<? if (is_category()) query_posts( array( 'category__and' => array(8,25), 'posts_per_page' => 8, 'orderby' => 'title', 'order' => 'DESC' ) ); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> |
‘category__and‘ => array(8,25) — 8 и 25 это категории по которым будем фильтровать. Результатом будут записи которые находятся в обоих категориях. posts_per_page — количество постоя на странице.
orderby — сортировка по полю ‘title‘.
order — показывает, что сортировка должна быть в обратном порядке (DESC).
А дальше дело техники, создаем форму и делаем запрос POST. Получив данные из запроса, просто подставляем в нужное нам место.
На этом пожалуй и все, подписывайтесь, комментируйте и предлагайте свои статьи.

/*

- Базовый курс по веб-дизайну;
- Верстка сайтов;
- Общий курс по CMS WordPress и продолжение курса по разработке шаблонов;
- Разработка сайтов на PHP.