我正在运行带有Storefront主题的WooCommerce,并且我的类别页面非常慢。监视查询时,我在“ 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
) ) );
}
,但不影响查询。有谁知道如何做到这一点?