Intereting Posts
wp_remote_get () и javascript / noscript ситуация Как подключиться к базе данных WordPress в плагине? Добавление фильтра в comment_template Какие файлы обновляются в обновлении плагина? Страница для печати со всеми сообщениями из тега Плагин WordPress, создающий базу данных в localhost, но не на реальном хосте ACF: использование двух циклов, the_field возвращает содержимое поля из другого цикла Отменить регистрацию jQuery WordPress на определенной странице Потерянный проект по всем постам и черновикам Почему неправильно использовать admin_print_scripts- {hook} для вставки файла сценария (.js)? Как уменьшить исходное качество изображения при загрузке? Как добавить в мой плагин третий проект Git Gender с композитором.json Пользовательское сообщение, когда доступны обновления WordPress Как я могу получить slug для пользовательского типа сообщения через имя? Найдите «Дети страницы», затем «Echo it» как «Маркированный список ссылок» (меню)

WP_Query с проблемой MetaQuery

Я столкнулся с довольно странной проблемой при попытке передать четыре разных значения meta_query в WP_Query.

Найдите ниже пример моего поиска WP_Query. Пожалуйста, имейте в виду, если я удалю и протестирую каждый из этих meta_query на своем собственном, они работают нормально. Просто, когда их пропускают, как четыре, я не получаю никаких результатов. Даже если оставить значения пустым, я по-прежнему не получаю сообщений в моем запросе!

$v_args = array( 'post_type' => 'loads_available', 's' => "Post Name", 'meta_query' => array( array( 'key' => 'type_of_load', 'value' => "Frozen", 'compare' => '=', ), array( 'key' => 'number_of_pallets', 'value' => 2, 'compare' => '>=', 'type' => 'NUMERIC' ), array( 'key' => 'type_of_trailer_required', 'value' => "Trailor", 'compare' => '=', ), // ^ problem array( 'key' => 'euro_pallets', 'value' => "Yes", 'compare' => '=' ) ) ); $loadsAvailableQuery = new WP_Query( $v_args ); 

Теперь я просто хотел бы дать понять, что эти значения meta_query работают нормально на индивидуальной основе, это просто когда я начинаю пытаться использовать их в сочетании друг с другом, например.

Запрос поиска:

Название сообщения: «Название сообщения» Тип загрузки: «Замороженный» Количество поддонов: 5 Требуемый тип трейлера: «Трейлер» Европоддоны: «Да»

Это не даст мне никаких результатов, хотя я уверен, что есть записи, соответствующие критериям. Мне кажется, что я могу что-то пропустить в Query, я читал об использовании отношения, но это по умолчанию означает «OR», что, я считаю, будет правильным значением здесь.

Есть ли в моем коде какие-либо распространенные заблуждения или очевидные недостатки, которые я не вижу здесь?

Большое спасибо за ответы.

Возможно, вы захотите добавить параметр 'RELATION' => в свой массив мета-запросов, чтобы вы могли охватить все ваши метазначения. Что-то вроде этого:

  $v_args = array( 'post_type' => 'loads_available', 's' => "Post Name", 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'type_of_load', 'value' => "Frozen", 'compare' => '=', ), array( 'key' => 'number_of_pallets', 'value' => 2, 'compare' => '>=', 'type' => 'NUMERIC' ), array( 'key' => 'type_of_trailer_required', 'value' => "Trailor", 'compare' => '=', ), // ^ problem array( 'key' => 'euro_pallets', 'value' => "Yes", 'compare' => '=' ) ) ); $loadsAvailableQuery = new WP_Query( $v_args ); 

В зависимости от вашего варианта использования вам может потребоваться настроить переменную на основе пользовательского запроса для переключения параметра отношения в ваш запрос.

Обратите внимание, что параметр отношения также может быть установлен на 'OR' .

Оформить заказ в разделе meta_query внутри кода WP_Query