Поиск записей, содержащих совпадающие элементы массива, в запросе usign WP в мета-поле


У меня есть метаполе, которое содержит ряд параметров и записывает результаты в массив в одном мета-поле:

array([0]=>'First',
      [1]=>'Second',
      [2]=>'Third',
     );

Я нахожу сообщения, содержащие любой из элементов массива, и отображаю их с помощью WP_Query

$search = new WP_Query('meta_key=mykey&meta_value=second');

Но, похоже, это не работает. Есть идеи, как этого добиться?


Я отредактировал свой метод, следуя этому вопросу:

$arg['meta_key'] == $key;
$args['meta_value'] = "%|".$value."|%";
$custom_query = new WP_Query($args);

Но никаких дротиков.

Author: Community, 2011-08-17

2 answers

Я считаю, что вы должны использовать мета-сравнение, ПОДОБНОЕ. Если вы выполняете обычный мета-запрос, результирующий SQL будет meta_value = your_value, который никогда ничего не найдет, потому что пытается соответствовать всему содержимому поля.

 2
Author: Milo, 2011-08-17 17:09:20

Я почти уверен, что верну или выполню поиск в массиве значений (или ключей), которые вам нужно использовать meta_query

Итак, что-то вроде:

$search = array(
           'post_type' => 'post',
           'meta_query' => array(
                                array(
                                   'key'     => 'mykey',
                                   'value'   => 'second',
                                     )
                                )
                );

 $query = new WP_Query($search);
 1
Author: Wyck, 2011-08-17 15:36:12