Добрый вечер!
Помогите разобраться в том как правильно сравнить несколько значений произвольного поля со значениями массива.
имеется:
$rabota = get_post_meta( $post_ID, 'rabota', true);
'meta_query' => array( array('relation' => 'OR', array( 'key' => 'rabota_61', 'value' => $rabota))),
Необходимо чтобы значение поля 'rabota_61' сравнивались со значениями массива $rabota и осуществляло поиск хотя бы по одному из значений.
Если поле 'rabota_61' обычный выпадающий список, а 'rabota' множественный выбор, сравнение и поиск происходит корректно, но если оба поля являются множественным выбором, сравнение и поиск не корректны.
Спасибо!
ваш код должен быть рабочим, тк документация по функции query_post позволяет указывать в значении 'value' массив и производить по нему поиск, т.е. если пост имеет в значении поля rabota_61 одно из значений указанного массива, то поиск производится корректно, но это в случае, если rabota_61 имеет одиночное значение. Другое дело, если в значении поля rabota_61 храниться массив, значит в БД он храниться в сериализованном виде и производить поиск по нему корректно уже не получится. По сериализованному массиву более менее можно производить поиск только выискивая одно значение и только, если compare указан как LIKE
Андрей CS сказал(а)
ваш код должен быть рабочим, тк документация по функции query_post позволяет указывать в значении 'value' массив и производить по нему поиск, т.е. если пост имеет в значении поля rabota_61 одно из значений указанного массива, то поиск производится корректно, но это в случае, если rabota_61 имеет одиночное значение. Другое дело, если в значении поля rabota_61 храниться массив, значит в БД он храниться в сериализованном виде и производить поиск по нему корректно уже не получится. По сериализованному массиву более менее можно производить поиск только выискивая одно значение и только, если compare указан как LIKE
Спасибо за разъяснение. Да, как вы и говорите, с одиночным значением поля rabota_61 все работает корректно. Теперь понятно почему мои потуги были тщетными.