Как применить мета-запрос (Wordpress), если он существует
Каждый продукт - это отдельный пост, поэтому я использую WP_Query, чтобы получать сообщения. Например, мне нужны все товары типа «коттедж», и участок «этитный» и кол-во семей «5». Поэтому я использую;
$query = new WP_Query(
array(
'post_type' => 'project',
'posts_per_page' => 12,
'orderby' => 'date',
'paged' => $paged,
'meta_query' => array(
array(
'key' => 'house_type',
'value' => $house_type[0],
'compare' => 'LIKE'
),
array(
'key' => 'po_uchastku',
'value' => $po_uchastku[0],
'compare' => 'LIKE'
),
array(
'key' => 'fam_count',
'value' => $fam_count,
'compare' => 'LIKE'
),
)
)
);
И это будет нормально работать, если будет установлено каждое значение. Но если используется только одно из полей выбора, два других значения будут пустыми, и запрос не вернет никаких сообщений. Есть ли способ сделать так, что если хоть одно значение совпадает, то его показывать ?
Ответы (1 шт):
Автор решения: Andrei Lepekhov
→ Ссылка
Решил, добавить 'relation' => 'OR'
$query = new WP_Query(
array(
/* ... */
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'house_type',
'value' => $house_type[0],
'compare' => 'LIKE'
),
array(
'key' => 'po_uchastku',
'value' => $po_uchastku[0],
'compare' => 'LIKE'
),
array(
'key' => 'fam_count',
'value' => $fam_count,
'compare' => 'LIKE'
),
)
)
);