Intereting Posts
Как обрезать описание в панели администратора для пользовательской таксономии «Добавить медиа» показывает только «Полный размер» в настройках отображения вложений Многоязычный код языка использования в качестве подкаталога как мы можем принести метабокс категории в медиа-библиотеку / Загрузить новую страницу мультимедиа Срок действия корзины Woocommerce для зарегистрированных пользователей Я продолжаю выходить в Firefox check_admin_referer не работает в настраиваемом мета-поле для пользовательского типа сообщения Добавление отображаемого изображения в сообщения, созданные плагином Отправка моей формы в базу данных, а затем перенаправление на сайт оплаты После обновления до Buddypress 1.2.6 из 1.2.5.2 панель администратора неправильно отображена для гостей-гостей Категория ребенка Woocommerce Постоянная ссылка Изменение структуры Создание поля ввода, необходимого с точки зрения WP Нет опции «Я хочу, чтобы мой сайт был приватным, видимым только для пользователей, которых я выбираю» в настройках конфиденциальности Как удалить и отключить доступ к странице общих настроек, включая ее ссылку Конфликтующие функции save_post при передаче идентификатора сообщения и сохранение настраиваемых мета-полей для разных типов сообщений

Большой выбор времени запроса OR OR

Я работаю над плагином календаря wordpress и сталкивается с проблемой с настраиваемыми полями. Я могу сделать два отдельных запроса для повторных событий и один для статических событий, но когда я пытаюсь объединить их, мои сценарии обрабатываются до тех пор, пока сервер не выйдет из строя и не перезапустит mysql …

$args = array( 'numberposts' => -1, 'post_type' => 'events', 'meta_query' => array( 'relation' => 'OR', array( 'relation' => 'AND', array( 'key' => 'calendar', 'value' => $cid, 'compare' => '='), array( 'key' => 'event_date', 'value' => $startQuery, 'compare' => '>=' ), array( 'key' => 'event_date', 'value' => $endQuery, 'compare' => '<=' ), array( 'key' => 'does_this_event_repeat', 'value' => '1', 'compare' => '='), array( 'key' => 'event_category', 'value' => '"'.$category.'"', 'compare' => 'LIKE'), ), array( 'relation' => 'AND', array( 'key' => 'calendar', 'value' => $cid, 'compare' => '='), array( 'key' => 'event_date', 'value' => $endQuery, 'compare' => '<=' ), array( 'key' => 'repeat_until', 'value' => $startQuery, 'compare' => '>=' ), array( 'key' => 'does_this_event_repeat', 'value' => '1', 'compare' => '>'), array( 'key' => 'event_category', 'value' => '"'.$category.'"', 'compare' => 'LIKE') ), ) ); $the_query = new WP_Query( $args ); 

ОБНОВИТЬ:

Пожалуйста, помогите мне разобраться, почему верх не работает, но код ниже. Я взял точный код и разбил его на два запроса, а затем объединил их в один.

 $static = array( 'numberposts' => -1, 'post_type' => 'protean_event', 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'calendar', 'value' => $cid, 'compare' => '='), array( 'key' => 'event_date', 'value' => $startQuery, 'compare' => '>=' ), array( 'key' => 'event_date', 'value' => $endQuery, 'compare' => '<=' ), array( 'key' => 'does_this_event_repeat', 'value' => '1', 'compare' => '='), array( 'key' => 'event_category', 'value' => $category, 'compare' => 'LIKE'), ) ); $repeating = array( 'numberposts' => -1, 'post_type' => 'protean_event', 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'calendar', 'value' => $cid, 'compare' => '='), array( 'key' => 'event_date', 'value' => $endQuery, 'compare' => '<=' ), array( 'key' => 'repeat_until', 'value' => $startQuery, 'compare' => '>=' ), array( 'key' => 'does_this_event_repeat', 'value' => '1', 'compare' => '>'), array( 'key' => 'event_category', 'value' => $category, 'compare' => 'LIKE'), ) ); $query1 = new WP_Query($static); $query2 = new WP_Query($repeating); //create new empty query and populate it with the other two $wp_query = new WP_Query(); $wp_query->posts = array_merge( $query1->posts, $query2->posts ); //populate post_count count for the loop to work correctly $wp_query->post_count = $query1->post_count + $query2->post_count; 

Solutions Collecting From Web of "Большой выбор времени запроса OR OR"

Прежде всего, все, что связано с LIKE просто не может быть быстрым. Если вы хотите быстрые запросы, избегайте LIKE .

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

Теперь почему сбою сервера трудно сказать, но большую часть времени это симптом для исчерпания памяти. Вопрос здесь в том, есть ли у mySQL нехватка памяти или на стороне PHP. В любом случае запрос на несвязанное количество результатов сделает это для вас, когда у вас будет много результатов.

Проблема заключалась в том, что первоначальный OR I реформировал усадьбу, в которой он собирал данные, и это работает мгновенно.

 $args = array( 'numberposts' => -1, 'post_type' => 'protean_event', 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'calendar', 'value' => $cid, 'compare' => '='), array( 'relation' => 'OR', array( 'relation' => 'AND', array( 'key' => 'event_date', 'value' => $startQuery, 'compare' => '>=' ), array( 'key' => 'event_date', 'value' => $endQuery, 'compare' => '<=' ), array( 'key' => 'does_this_event_repeat', 'value' => '1', 'compare' => '='), ), array( 'relation' => 'AND', array( 'key' => 'event_date', 'value' => $endQuery, 'compare' => '<=' ), array( 'key' => 'repeat_until', 'value' => $startQuery, 'compare' => '>=' ), array( 'key' => 'does_this_event_repeat', 'value' => '1', 'compare' => '>'), ) ), array( 'key' => 'event_category', 'value' => '"'.$category.'"', 'compare' => 'LIKE') ) );