hereswhatidid
  • 0
Новичок

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

  • 0

Я пытаюсь создать список результатов поиска для пользовательского типа сообщения, и проблема, с которой я сталкиваюсь, заключается в том, как параметр «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);

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

Share
  1. Да, начиная с 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.

    • 0

Оставить ответ

You must login to add an answer.