Комбіновані параметри фільтрації 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.