Поиск по нескольким настраиваемым полям с помощью мета-запроса


Я пытаюсь создать список результатов поиска для пользовательского типа записи, и проблема, с которой я сталкиваюсь, заключается в том, как параметр "meta_query" связывает переданные значения вместе. Похоже, что он рассматривает каждое значение "meta_query" как "И", а не "ИЛИ". Вот код, который я использую:

$strsearch = 'lorem';
$args = array(
    'post_type' => 'products',
    'meta_query' => array(
        array('key' => '_product_make','compare' => 'LIKE','value' => $strsearch),
        array('key' => '_product_model','compare' => 'LIKE','value' => $strsearch)
        )
    ,'s' => $strsearch);
$resource_query = new WP_Query($args);

Когда я ищу любое из полей по отдельности, я получаю желаемые результаты. Когда я использую их вместе, он появляется как не найденный, так как строка, которую я поиск может выполняться только в одном из трех полей, перечисленных ниже. Есть ли какой-либо способ, чтобы "мета_запрос" обрабатывал каждое из переданных сравнений полей как "ИЛИ"?

Author: hereswhatidid, 2011-03-31

1 answers

Да, начиная с WP 3.2 вы можете задать аргумент "отношение":

'meta_query' => array(
    'relation' => 'OR',
    array('key' => '_product_make','compare' => 'LIKE','value' => $strsearch),
    array('key' => '_product_model','compare' => 'LIKE','value' => $strsearch)
)

См. http://core.trac.wordpress.org/ticket/17011

 8
Author: scribu, 2011-06-30 11:09:34