Фільтр: esl/query/force_run

Esl покращив продуктивність запитів у версії 1.9.1. Тепер кожен унікальний запит виконується лише один раз за завантаження сторінки, і відповідно, результати запиту повторно використовуються на тій же сторінці. Як наслідок, певні фільтри PHP, пов’язані з запитами, більше не будуть викликатися кілька разів.

Наступні фільтри можуть бути під впливом:

  • esl/posts/merge_query
  • esl/posts/query_vars
  • esl/terms/query_vars
  • esl/users/query_vars
  • esl/query/run
  • esl/query/result
  • esl/query/result_count
  • esl/query/result_max_num_pages

Проте, розробники можуть використовувати цей фільтр для вимкнення цього налаштування для певних запитів за специфічних обставин.

// Повертає булеве значення (за замовчуванням: false)add_filter( 'esl/query/force_run', function( $force_run, $query ) {// Отримати ID елемента$element_id  = $query::get_query_element_id();// Отримати налаштування елемента$settings = $query->settings;if ( isset( $settings['usingFacetWP'] ) ) {$force_run = true;}return $force_run;}, 10, 2 );

Починаючи з 1.9.2, ви можете визначити $query_vars['esl_force_run'] = true, щоб досягти того ж результату. Це буде зручно, якщо ви використовуєте Esl Query Editor або PHP фільтри, такі як esl/posts/query_vars тощо.