Я использую WooCommerce с темой Storefront, и мои страницы категорий работают довольно медленно. Когда я наблюдаю за запросом, я вижу несколько внутренних объединений на "term_taxonomy_id"
WHERE 1=1 AND ( wp_term_relationships.term_taxonomy_id IN (25)
AND tt1.term_taxonomy_id IN (25,268477,268482,268506,268507 etc etc)
AND AND tt2.term_taxonomy_id IN (25,268477,268482,268506,268507 etc etc)
но когда я запускаю (в phpmyadmin) тот же запрос без внутренних объединений для tt1.term_taxonomy_id и tt2.term_taxonomy_id, я получаю те же результаты.
Я пытался избавиться от этих внутренних объединений, подключив функцию в pre_get_posts
if ( isset ( $wp_query->query_vars['product_cat'] ) ) {
$wp_query->set('tax_query', array( array (
'taxonomy' => 'product_cat',
'terms' => 25,
'include_children' => false
) ) );
}
но это не влияет на запрос. Кто-нибудь знает, как этого добиться?