Я пытаюсь применить фильтры в списке продуктов. Пользователи будут использовать поля выбора на лицевой панели и нажмите кнопку, чтобы фильтровать продукты.Как применять мета-запрос (Wordpress), если он существует
Каждый товар - это собственный пост, поэтому я использую WP_Query для получения сообщений. Например, я хочу, чтобы все продукты имели цвет «красный», материал «пластик» и бренд «Бикон». Поэтому я использую;
$color = "red";
$material = "plastic";
$brand = "Bikon";
$query = new WP_Query(array(
'post_type' => 'products',
'posts_per_page' => 6,
'post_status' => 'publish',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'color',
'value' => $color,
'compare' => '='
),
array(
'key' => 'material',
'value' => $material,
'compare' => '='
),
array(
'key' => 'brand',
'value' => $brand,
'compare' => '='
)
)
));
И это будет работать нормально, если будет установлено каждое значение get. Но если используется только один из полей выбора, остальные два значения будут пустыми, и запрос не вернет никаких сообщений. Есть ли способ сказать «использовать этот массив только в мета-запросе, если это значение установлено»?
Я не уверен, если это из-за этот кусок кода или из-за чего-то еще, но когда я использую этот метод, код застревает в запросе. – Joris508
Странно, для меня он отлично работает, использовал этот метод несколько раз раньше. Можете ли вы поделиться снимком экрана с полным просмотром кода? –
Возможно, вы shoudnt укажите meta_query в исходном запросе. Так что добавьте его, только если какая-либо фильтрация существует - http://prntscr.com/e1is9a –